Определение сборки TFS 2010 - PullRequest
2 голосов
/ 20 января 2011

В окне определения сборки 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?

Ответы [ 3 ]

3 голосов
/ 20 января 2011

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

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

См. Серию публикаций в блоге по настройке сборки для получения дополнительной информации о настройке шаблона процесса сборки.

0 голосов
/ 20 января 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

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

В качестве альтернативы выможете просто отобразить следующее (в зависимости от того, сколько у вас есть в этой папке, если у вас есть Решения 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

. Именно поэтому вы хотите убедиться, что ваш OutDВсе ир и т. д. являются правильными и не имеют жесткой кодировки!

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

0 голосов
/ 20 января 2011

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

...