Как использовать свойства Team Build в MSBuild? - PullRequest
7 голосов
/ 29 августа 2011

У меня есть простое определение сборки tfs-2010 с использованием шаблона процесса по умолчанию.В нем я определил формат номера сборки, используя $ (BuildID) для определения части вычисляемого поля.Это работает, и я вижу значение BuildID.

Теперь я пытаюсь передать свойство BuildID в MSBuild в качестве аргумента:

/p:SomeProperty=$(BuildID)

Однако, когда я смотрю на журнал сборки, я вижуSomeProperty буквально равняется $ (BuildID), а не значению BuildID.

Что мне не хватает?

Обновление для ясности: я спрашиваю, как ссылаться на параметр процесса сборки вОпределение сборки.Например, формат номера сборки имеет выражение по умолчанию $ (BuildDefinitionName) _ $ (Date: yyyyMMdd) $ (Rev: .r)

1 Ответ

4 голосов
/ 30 августа 2011

Вам нужно использовать выражение VB.NET. Например:

String.Format("/p:SomeProperty={0}", BuildDetail.BuildNumber)

токены номера сборки, например, $ (BuildDefinitionName), относятся к параметру процесса Формат номера сборки. Это не токены, которые вы можете использовать где-либо еще в процессе сборки. Большинство из них доступны в объекте BuildDetail или из среды. Однако Build Id - это особый случай. Он взят из столбца идентификаторов таблицы builds и не представлен напрямую в нашем общедоступном API. Вы можете извлечь его из BuildNumber, например так:

BuildDetail.BuildNumber.Substring(BuildDetail.BuildNumber.LastIndexOf('/') + 1)

Обратите внимание, что вам нужно будет сделать это непосредственно в XAML, а не помещать выражение VB в графический редактор редактора параметров процесса сборки. Это потому, что эти значения просто передаются в виде буквенных строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...