Номер версии TFS и msbuild с последним набором изменений

Я хочу создать номер сборки, который выглядит как Major.minor.Date.LastChangeSetInTFS, проблема в том, как получить последний номер набора изменений из TFS. Есть ли какое-либо свойство или что-то подобное?

Ответы

Ответ 1

ОК, наконец, я нашел решение. Здесь задание, которое предоставит вам последний номер набора изменений и создаст свойство, чтобы вставить его в номер сборки сборки. Основная проблема заключалась в отсутствующем свойстве TfsLibraryLocation (без него он должен указывать на библиотеки в GAC, но это не так)

<Target Name="GetVersionChangeSet">
<TfsVersion
  TfsLibraryLocation="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies"      
  LocalPath="$(SolutionRoot)">
  <Output TaskParameter="Changeset" PropertyName="ChangesetNumber"/>
</TfsVersion>
<Message Text="TFS ChangeSetNumber: $(ChangesetNumber)" />

Ответ 2

В соответствии с комментарием на этой странице вы можете использовать командную строку tf changeset /latest /i, но я не могу проверить это из дома.

Ответ 3

Извините, я не могу прокомментировать последний ответ.

Задача TfsVersion в предоставленной вами форме даст вам только последний номер набора изменений в $(SolutionRoot).

Если у вас есть что-то более новое в $(SolutionRoot)\subdir, предоставленное решение не будет работать, так как оно даст вам последнее из $(SolutionRoot), а не из $(SolutionRoot)\subdir, как вы бы хотели.

Я использую tf changeset /latest /i, и он отлично работает для меня.

Ответ 4

Проверьте следующие проекты расширений. Вы найдете около 5 различных способов решения вашей проблемы.

  • MSBuild Extension Pack - активно поддерживается, это расширение обеспечивает более 280 задач
  • Проект задач сообщества MSBuild - не поддерживается с 2007 года, этот набор из 90 задач по-прежнему имеет несколько уникальных задач, а именно: задача с файловой версией
  • Библиотека задач SDC - не поддерживается с августа 2008 года, это расширение было поглощено MSBuild Extension Pack. Если в MSBuild Extension Pack есть что-то, что вы не можете найти, проверьте этот вариант, имея в своем портфеле более 300 задач, возможно, он имеет то, что вам нужно.