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?

Foi útil?

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.

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