Incluindo a Revisão SVN no Versionamento da Sua Assembly .NET

No mundo do desenvolvimento de software, manter o controle de versão é crucial. Para aqueles que usam o Subversion (SVN) como seu sistema de controle de versão, poder incluir o número de revisão do repositório SVN na string de versão de um assembly .NET pode melhorar a rastreabilidade e facilitar a depuração. Se você tem se perguntado, “Há uma maneira de fazer isso sem ferramentas de terceiros como o CC.NET?”, a resposta é um sonoro sim.

O Problema: Versionamento Sem Ferramentas Adicionais

Você pode ter encontrado situações em que deseja que sua string de versão não apenas reflita os números de versão major e minor, mas também o número de revisão SVN. Um formato típico de versão que você pode considerar se parece com isto:

Major.Minor.SVNRev

Infelizmente, encontrar um método simples para atingir isso em .NET sem software adicional pode ser um desafio, especialmente se você já fez algo semelhante em linguagens como C ou C++. Em C/C++, isso poderia ser alcançado usando um script de construção que atualizasse um arquivo de cabeçalho com o número da versão.

A Solução: Usando SubWCRev

Uma maneira eficaz de incorporar o número de revisão SVN no versionamento do seu assembly .NET é através do SubWCRev, uma utilidade incluída com o TortoiseSVN. SubWCRev lê palavras-chave SVN dos seus arquivos e as substitui pelas informações de revisão apropriadas durante o processo de construção.

Guia Passo a Passo para Implementar SubWCRev

  1. Baixar e Configurar o TortoiseSVN:

    • Comece baixando o TortoiseSVN, se ainda não o fez.
    • Instale-o na sua máquina para acessar a utilidade SubWCRev incluída.
  2. Configurar Seu AssemblyInfo.cs:

    • Abra seu arquivo AssemblyInfo.cs; este arquivo normalmente contém as informações de versão do seu assembly.
    • Adicione marcadores de posição onde os números de versão serão substituídos por SubWCRev.

    Exemplo:

    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    [assembly: AssemblyInformationalVersion("1.0.0.0")]
    
  3. Criar um Arquivo de Template:

    • Crie um novo arquivo de texto (por exemplo, VersionInfo.txt) e estruture-o para definir como as informações de versão devem ser preenchidas.
    • Use marcadores de posição para o número de revisão.

    Exemplo de VersionInfo.txt:

    [assembly: AssemblyVersion("${VersionNumber}.0")]
    [assembly: AssemblyFileVersion("${VersionNumber}.0")]
    [assembly: AssemblyInformationalVersion("${VersionNumber}.${Revision}")]
    
  4. Executar o SubWCRev:

    • Utilize o comando SubWCRev para substituir os marcadores de posição no seu arquivo VersionInfo.txt por números de versão reais do seu repositório SVN.
    • Isso pode geralmente ser feito via linha de comando ou incluído nos seus scripts de construção.
  5. Construir Seu Projeto:

    • Ao construir seu projeto, o SubWCRev gerará um novo AssemblyInfo.cs com a versão preenchida com sua revisão SVN.

Conclusão

Ao incorporar o SubWCRev no seu fluxo de trabalho de projeto .NET, você pode garantir facilmente que a string de versão do seu assembly inclui o número de revisão SVN, tudo sem depender de software externo como o CC.NET. Essa abordagem não apenas torna seu versionamento mais informativo, mas também o mantém simples e gerenciável.

Agora que você sabe como incluir o número de revisão SVN no versionamento do seu assembly .NET, experimente no seu próximo projeto, e você apreciará a clareza que isso traz.