Pergunta

Eu estou usando TortoiseSVN e Visual Studio 2008. Existe alguma maneira de atualizar assemblyinfo.cs do meu projeto com a versão de SVN em cada compilação?

Por exemplo, 1.0.0 [versão do svn.] -> 1.0.0.12

Foi útil?

Solução

Você pode usar o SubWCRev ferramenta que vem com TortoiseSVN (também disponível separadamente).

De qualquer executá-lo a partir de uma linha de comando ou usar o COM- objeto que oferece.

A ferramenta de linha de comando SubWCRev substitui palavras-chave dentro de um arquivo com informações de sua cópia de trabalho svn. Um exemplo é mostrado na documentação.

Outras dicas

Eu faço isso na minha script de construção :

<SvnInfo LocalPath=".">
  <Output TaskParameter="Revision" PropertyName="BuildRev" />
</SvnInfo>
<FileUpdate Files="protobuf-net\Properties\AssemblyInfo.cs"
  Regex='(\[\s*assembly:\s*AssemblyVersion\(\s*"[^\.]+\.[^\.]+)\.([^\.]+)(\.)([^\.]+)("\)\s*\])'
  ReplacementText='$1.$2.$(BuildRev)$5' />

usando os tarefas construir a comunidade . Isto essencialmente aplica um regex para os AssemblyInfo.cs, substituindo a actual revisão com a revisão do SVN.

Você pode usar o $Rev$ svn chave mas que dará -lhe a última revisão do arquivo, eu acho que você deseja obter o número de revisão HEAD.

Dê uma olhada a esta pergunta:

Como você se sente sobre um Visual Studio suplemento fazê-lo?

Sim, você pode adicionar um evento de pré-compilação que chama um script que

  • chamadas svn info para extrair o número de revisão atual (se você fizer uma atualização antes, você pode incluir diretamente a palavra-chave $Revision$ em um arquivo, verifique também este post );
  • modifes seu arquivo de propriedades \ AssemblyInfo.cs em conformidade.

O que eu costumo fazer é transformar um modelo AssemblyInfo.cs quando o projeto é construído. O script é necessário adaptar a forma de $ Revision $ para a sintaxe desse arquivo, infelizmente.

As propriedades interessantes são (onde as cordas modelo são entre '$'):

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")]

Edit: svn info é parte do cliente SVN padrão, não TortoiseSVN como apontado em outro post. Fácil de instalar embora. No entanto, o TortoiseSVN vem com SubWCRev.exe que transforma um arquivo com a substituição da palavra, para que ele iria fazer o truque se você atualizar sua cópia local.

No Visual Studio 2008, você pode definir um evento de pré-compilação que pode iniciar um script ou um pequeno programa. Dentro deste script ou programa, você pode usar o svnversion comando para obter a revisão do repositório, em seguida, analisar seus AssemblyInfo.cs e modificar o número da versão para o que você deseja.

Eu não tenho certeza se TortoiseSVN vem com svnversion, mas ele vem com o do Windows construção SVN fornecido pela CollabNet

Eu criei um href="http://happyturtle.codeplex.com/" rel="nofollow noreferrer"> versão para o Construir projeto Versão Incremento (que é nomeado na resposta de popester). Este plug-in SVN vai puxar o mais recente número de alteração da revisão de sua cópia de trabalho e permitem que você use isso em seu número de versão, que deve realizar exatamente o que você está tentando fazer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top