TFS 2010: выполнять различные сборки и задачи командной строки по очереди? - PullRequest
2 голосов
/ 22 декабря 2011

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

  1. Построить первый проект в решении

  2. Выполнить MSBuild через командную строку (для публикации проекта)

  3. Запустить сторонний инструмент через командную строку (чтобы запутать двоичные файлы)

  4. Создание второго проекта в решении (проект InstallShield)

Как мне этого добиться? Я могу определить несколько проектов в определении сборки, но как я могу вызвать несколько задач командной строки между этими шагами сборки? И MSBuildArguments в определении сборки: это аргументы для каждого вызова msbuild для каждого проекта / решения?

Спасибо

Konrad

Ответы [ 2 ]

3 голосов
/ 22 декабря 2011

Сначала вам нужно добавить в определение сборки отдельный *.*proj вместо одной большой *.sln - или (что еще лучше) конструкции более чем одного *.sln и заказать их для получения сборки в определении сборки.
Таким образом, вы можете организовать Project1.sln, Project2.sln и т. Д., Которые используются только из сборки.

В дополнение к этому вам придется внести изменения в шаблон процесса сборки, чтобы получить это.
По умолчанию вы получаете что-то подобное, которое выполняет каждый заданный проект / решение в большем foreach:
enter image description here

Хорошим способом было бы улучшить это как последовательность, гдевсе ваши настраиваемые действия устанавливаются как InvokeProcess активности:
enter image description here

Очевидно, вам нужно будет вставить сюда элемент управления потоком, чтобы Publish & Dotfuscator выполнялся в первый раз (где Project1.sln получает сборку), а ISDEV выполняется второй раз (где Project2.sln получает сборку).В приведенном ниже примере я использовал switch и упакованный Publish & Dotfuscator в новом Sequence.
Наконец, вам понадобится какой-то счетчик.Самый непосредственный вариант - установить новую переменную Int32 со значением по умолчанию == 1 и вручную увеличить ее во время выполнения.В приведенном ниже примере это делается в нижнем Assign:
enter image description here

Это окончательное переопределение Complie the Project вместе с измененным определением сборки должно получить то, что вы ищете.

1 голос
/ 22 декабря 2011

Определение сборки команды принимает список файлов проекта sln и msbuild. Вы можете просто разделить ваш проект InstallShield на его собственное решение (у большинства разработчиков, скорее всего, не будет копии InstallShield) и написать файл целей msbuild для шагов 2 и 3. Затем просто скажите свое определение сборки для построения решения 1 файл целей и решение 2.

Вы также можете поместить материал в файл целей в событие после сборки для одного из проектов в решении 1.

Я бы не стал делать это в рабочем процессе.

...