Configuração do Visual Studio 2010 para alterar automaticamente as versões do assembly do projeto .NET das versões SVN

StackOverflow https://stackoverflow.com//questions/9695683

Pergunta

Como posso configurar especificamente o Visual Studio 2010 para poder alterar automaticamente a versão assembly dos meus projetos .NET sem precisar alterá-los manualmente, durante a compilação (ou construção/reconstrução de um projeto/solução).Seja específico sobre como uma empresa/organização típica faria isso se tivesse um aplicativo da Web e vários projetos de biblioteca de classes na mesma solução.Vamos supor que estamos usando o Tortoise SVN para controle de versão e queremos que a versão do nosso projeto reflita a(s) versão(s) do SVN automaticamente.

Foi útil?

Solução

Não conheço nenhuma maneira de fazer isso via Visual Studio.

Sua organização tem um script de construção?Eu mantenho um buildscript no Powershell e a partir daqui o problema pode ser resolvido.

Aqui estão alguns trechos de exemplo:

Para extrair o número de revisão do Subversion:

$revisionNumber = (svn info $RepositoryPath -r HEAD | select-string '^Revision: (\d+)$').Matches[0].Groups[1].Value

Então, para atribuir esse número de versão a cada assembly na solução:

$targetAssemblyVersion="1.0.3.{0}" -f $revisionNumber
$assemblyDeclaration = "[assembly: AssemblyFileVersion(`"{0}`")]" -f $targetAssemblyVersion;
get-childitem -recurse -filter "AssemblyInfo.cs" |
   % {
          $sb = new-object System.Text.StringBuilder;
          $_ | get-content |
           % {
                 $replacedString = ($_ -replace '^\[assembly: AssemblyFileVersion\("[\d\.]+"\)\]',$assemblyDeclaration);
                  $dummy = ($sb.AppendLine($replacedString));
            };
          $sb.ToString() | out-file $_.FullName;
    };
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top