MSBUILD TFS Número de construção
-
20-09-2019 - |
Pergunta
Eu uso o SVN há um tempo agora. Recentemente, em um projeto, estou usando o TFS. Com as compilações, gosto de anexar/atualizar o número da versão Build na saída do projeto. Faço isso na página master para que seja claramente visível no aplicativo. Como o aplicativo pode estar em execução em várias máquinas, são informações úteis sobre as quais Verison está em execução.
Eu alcanço isso no mundo svn como:
<!-- Import of the MSBuildCommunityTask targets -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!-- to AssemblyInfo to include svn revision number -->
<Target Name="BeforeBuild">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(ProgramFiles)\CollabNet Subversion Client">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
<Output TaskParameter="Month" PropertyName="Month" />
<Output TaskParameter="Day" PropertyName="Day" />
</Time>
<FileUpdate Files="MasterPage.master" Regex="svn revision: (\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="svn revision: $(Year).$(Month).$(Day).$(Revision)" />
</Target>
Como você pode ver acima, a tarefa "antes da compra" atualiza o arquivo masterpage.master com o carimbo yyyyy.mm.dd.svnversion.
Como posso conseguir isso com o TFS como controle de origem. Como faço para obter o número de construção do TFS?
Solução
Supondo que você quer dizer a equipe da equipe, a propriedade $ (BuildNumber) contém o número atual de compilação.
Ver http://blogs.msdn.com/aaronhallberg/archive/2008/02/12/team-build-2008-property-reference.aspx Para uma referência completa das propriedades disponíveis.
Se você está apenas executando o msbuild, não acredito que ele gere/aplica um número geral de compilação (cada projeto terá um número de versão individual, possivelmente incrementado automaticamente, em seu arquivo AssemblyInfo.cs [por padrão]). Você pode obter dinamicamente este número de versão para uma montagem específica usando a classe System.Reflection.Assembly no tempo de execução.
Atualizar
A partir do TFS 2010, a variável 'BuildNumber' não é mais passada automaticamente para o processo MSBuild pelo TFS. O TFS 2010 agora usa o fluxo de trabalho do Windows como seu mecanismo de compilação interno; portanto, se você deseja o número da construção, terá que modificar sua definição de construção para incluí -lo, como mencionado em Este artigo do MSDN.