Вложенные аргументы шаблона сборки TFS - PullRequest
1 голос
/ 20 декабря 2011

Можно ли вложить аргументы шаблона сборки TFS друг в друга?

Пример (устанавливается через пользовательский интерфейс определения сборки):

$(ToolsRoot) = E:\BuildTools

$(MSPECTools) = $(ToolsRoot)\MSpec\

В качестве альтернативы, можно ли использовать переменные среды.

Я попробовал оба варианта, но ни один из них не помог.

Мне нужно найти способ динамической установки корня сборки, поскольку он отличается на разных серверах сборки.

1 Ответ

0 голосов
/ 20 декабря 2011

Полагаю, вы внедрили топологию, подобную этой: enter image description here

Итак, вам нужно контролировать корень для каждого агента.
Если вы откроете консоль администратора TFS> Настройка сборки в BuildНа компьютере № 1 вы увидите контроллер сборки и агенты A.1 и A.2.
Если вы откроете консоль администрирования TFS> Настройка сборки на машине сборки № 2, вы увидите агенты A.3, A.4,A.5 и A.6.

Для любого данного агента сборки, если вы нажмете «Свойства», вы увидите запись «Рабочий каталог», которая обычно имеет значение, подобное $(SystemDrive)\Builds\$(BuildAgentId)\.Во время выполнения это преобразуется во что-то вроде C:\Builds\55.

Для любой данной сборки в области определения сборки "Рабочие пространства" этот "Рабочий каталог" равен записи $(SourceDir).

Предположим, вы установили в агенте A.1 рабочий каталог "C: \ A.1 \ Build" и в агенте A.2 "C: \ A.2 \ Build".
Чтобы получить то, что вам нужно, вы должны установить в определении сборки отображение $(SourceDir)\Template

...