Номер сборки MSBuild TFS


Я использую SVN уже некоторое время. недавно в одном проекте я использую TFS. С помощью сборок я хотел бы добавить / обновить номер версии сборки на выходе проекта. Я делаю это на главной странице, чтобы это было хорошо видно на приложении. Поскольку приложение может быть запущено на нескольких машинах, это удобная информация о том, на каких верисонах работают.

Я достигаю этого в мире SVN как:

  <!-- Import of the MSBuildCommunityTask targets -->
    <Import Project="$(MSBuildExtensionsPath)MSBuildCommunityTasksMSBuild.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>

Как вы можете видеть выше, задача "BeforeBuild" обновляет мастер-страница.мастер-файл со штампом YYYY.MM.DD.SVNVERSION.

Как я могу достичь этого с TFS в качестве системы управления версиями. Как получить номер сборки TFS?

1 9

1 ответ:

Предполагая, что Вы имеете в виду Team Build, свойство $(BuildNumber) содержит текущий номер сборки.

См.http://blogs.msdn.com/aaronhallberg/archive/2008/02/12/team-build-2008-property-reference.aspx для полной ссылки на доступные свойства.

Если вы просто запускаете MSBuild, я не верю, что он генерирует / применяет общий номер сборки (каждый проект будет иметь индивидуальный, возможно автоматически увеличенный, номер версии в своем AssemblyInfo.cs [по умолчанию] файл). Вы можно динамически получить этот номер версии для конкретной сборки с помощью системы.Отражение.Класс сборки во время выполнения.


Обновление

Начиная с TFS 2010, переменная 'BuildNumber' больше не передается автоматически в процесс MSBuild с помощью TFS. TFS 2010 теперь использует Windows Workflow в качестве внутреннего движка сборки, поэтому, если вы хотите получить номер сборки, вам придется изменить определение сборки, чтобы включить его, как указано в этой статье MSDN.