Вопрос

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

Я достигаю этого в SVN world как:

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

Это было полезно?

Решение

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

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

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


Обновить

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top