Номер сборки MSBuild TFS - PullRequest
       21

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

9 голосов
/ 08 октября 2009

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

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

  <!-- 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>

Как вы можете видеть выше, задача «BeforeBuild» обновляет файл masterPage.master штампом YYYY.MM.DD.SVNVERSION.

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

1 Ответ

5 голосов
/ 08 октября 2009

Если вы имеете в виду Team Build, свойство $ (BuildNumber) содержит текущий номер сборки.

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

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


Обновление

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

...