Номер сборки MSBuild TFS
-
20-09-2019 - |
Вопрос
Я использую 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.