Определение сборки TFS 2010

В окне определения сборки TFS 2010 в разделе «Процесс» есть два обязательных элемента. Это «Конфигурации для сборки» и «Проекты для сборки». В проектах для сборки это позволит мне ввести что-то вроде:

$/TeamProject/Area1/Area2/*

Однако это не похоже на то, что я ожидаю. Сборка завершается неудачно, потому что она ищет:

$/TeamProject/Area1/Area2/Sources/*

Чего я пытаюсь достичь, так это построить все решения, содержащиеся в этой области. Например, у меня есть:

$/TeamProject/Area1/Area2/Solution1/Solution1.sln
$/TeamProject/Area1/Area2/Solution2/Solution2.sln
$/TeamProject/Area1/Area2/Solution3/Solution3.sln

Есть гораздо больше решений, чем это, поэтому я ищу способ рекурсивно построить все решения по указанному пути. Есть ли способ сделать это в TFS 2010?


person Paul Michaels    schedule 20.01.2011    source источник


Ответы (3)


Вы можете изменить шаблон процесса. Разверните его с помощью действия «Сопоставление файлов» (сейчас у меня нет точного названия). Добавьте параметр, который передает информацию, заданную вами в определении сборки, в действие MachingFiles. Затем передайте в действие решения сборки вместо аргумента, который вы вводите в определении сборки, файлы, найденные действием MatchingFiles.

Теперь добавьте фиктивное решение в определение сборки для решения, которое нужно построить (оно больше не используется).

Дополнительную информацию о шаблон процесса сборки.

person Ewald Hofman    schedule 20.01.2011

FWIW, у меня есть: «конфигурации для сборки» пустые, а в разделе «проекты для сборки» я добавил свои решения с помощью кнопки с многоточием.

person timB33    schedule 20.01.2011

Я бы настроил сопоставления для

$/TeamProject/Area1/Area2/Solution1/    
$/TeamProject/Area1/Area2/Solution2/    
$/TeamProject/Area1/Area2/Solution3/

Затем в определениях сборки введите три проекта для сборки.

$/TeamProject/Area1/Area2/Solution1/Solution1.sln
$/TeamProject/Area1/Area2/Solution2/Solution2.sln
$/TeamProject/Area1/Area2/Solution3/Solution3.sln

Вы можете оставить конфигурации для сборки пустыми, или, если вы хотите выполнить определенную сборку, вы можете установить для нее (например) что-то вроде Отладка | Смешанные платформы (проверьте свой диспетчер конфигураций... для решений, которые вы создаете, чтобы увидеть что актуально)

В качестве альтернативы вы можете просто сопоставить следующее (в зависимости от того, сколько у вас есть в этой папке, если у вас есть решения 4+, на которых вы не хотите запускать сборки, не делайте этого на этом уровне)

$/TeamProject/Area1/Area2

И есть одно решение, которое содержит Solution1, Solution2 и Solution3, и вместо этого создайте его.

По умолчанию создание вашего решения Solution1, которое сопоставлено с

$/TeamProject/Area1/Area2

В агенте сборки с рабочим каталогом, который будет выглядеть примерно так:

$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)

Вы закончите тем, что он будет построен под

C:\Builds\1\Solution1\Binaries
C:\Builds\1\Solution1\Sources
C:\Builds\1\Solution1\TestResults

Вот почему вы хотите убедиться, что ваши OutDir и т. д. все правильные и не жестко запрограммированы!

Если вы посмотрите во время сборки, вы увидите, что агент сборки заполняет папку «Источники», и он должен (если настроен правильно) помещать все выходные данные в папку «Двоичные файлы» (а затем копировать их в папку «Перетаскивание», настроенную в разделе «Параметры сборки по умолчанию» в TFS). .

person Daniel Morritt    schedule 20.01.2011