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

3 ответа

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

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

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

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

$/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

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

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

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

Другие вопросы по тегам