Определение сборки 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, у меня есть: "конфигурации для создания" пустые и в разделе "проекты для сборки" я добавил свои решения с помощью кнопки с многоточием