2012-01-27 2 views
13

У меня есть решение, которое построено на сервере TFS. Это решение включает несколько проектов, которые имеют пользовательские задачи MSBuild. Эти задачи фактически создают некоторые zip-архивы.Как передать переменную TFS в задачу MSBuild проекта

Мне нужно как-то извлечь макросы $ (Rev) из сборки TFS и передать ее задачам. Я пытался использовать MSBuildArguments на вкладке процесса определения сборки, и она работает, когда я установил простое значение строки, как:

/р: Version = «5»

но это не работает с макросами :

/р: Version = "$ (Rev: г)"

enter image description here

у вас есть какие-нибудь идеи?

Редактировать: Мне действительно нужен BuildDetail.BuildNumber.

+0

Могу ли я спросить, что заставляет вас думать, что это макросы? –

+0

Хм, я просто подумал, что это называется макросами. Проверьте формат номера сборки - он построен с этими макросами. Я ошибаюсь? Я новичок в TFS. –

+0

Да, они не общие. Формат форматирования номера зависит от номера сборки. –

ответ

14

Вы можете слегка изменить шаблон процесса сборки, чтобы достичь этого.
По умолчанию раздел, который относится к MSBuild выглядит следующим образом:
enter image description here
Это может быть расширен в нечто вроде этого:
enter image description here

Если теперь ввести в «MSBuild Аргументы» вашего определения построения (похожих на вашей картине) что-то вроде /p:Version=RePlAcE, вы должны получить то, что вам нужно.

В другом определении сборки, где вам это не нужно, просто оставьте запись пустой. Этот подход является альтернативой найденному here и должен быть выбран, если эта версия-вставка явно не требуется для всех определений конструкции, потребляющих ее.

+0

есть, спасибо. Я уже делал то же самое –