Atualizar informações da versão com o msbuild (após a compilação de binários)
-
21-09-2019 - |
Pergunta
Eu quero fazer um alvo no meu script msbuild que:
- Fetch SVN Revisão/DateTime da pasta Fontes (Comando 'SVN Info')
- Atualize o recurso VersionInfo de .exes e .dlls gerados pelo alvo 'Build'
Há algo pronto para conseguir isso? Estou perguntando pouco antes de reinventar outra roda ...
Estou dando uma olhada em http://msbuildExtensionpack.codeplex.com
Solução
Projeto de tarefas da comunidade msbuild é seu amigo. Verifique sua tarefa "svninfo".
Além disso, Daniel Doubrovkine's Resourcelib é um excelente trabalho e pode evitar muitas dores de cabeça ao tentar desembaraçar a bagunça da criação da versão (já estive lá, fez isso ...)
Outras dicas
Muito mais fácil de fazer isso antes da compilação escrevendo um arquivo AssemblyInfo (ou qualquer arquivo com atributos de montagem) que isso é incluído em seus projetos.
Exemplo de escrever isso em PowerShell encontrado aqui: https://github.com/craigbeck/rhino-esb/blob/master/psake_ext.ps1#l7-46
Uma ressalva - as versões no .NET não são apenas nenhuma corda, mas ushort
s, o que significa que eles têm um máximo de 65535 (ver documentos aqui). Se você usar a revisão SVN (como fizemos em um ponto), sua construção será interrompida assim que exceder esse número mágico.
Por que você tentaria fazer isso após a compilação?