TeamBuild - Можно ли выбрать, какие проекты компилировать во время сборки? - PullRequest
1 голос
/ 30 апреля 2009

Я автоматизирую свой процесс сборки с помощью TeamFoundation, и мне нужно выбрать, какие проекты компилировать в соответствии с файлом .proj из сборки. Вот полный сценарий:

У меня есть файл .proj, который использует файл .sln, чтобы скомпилировать решение, содержащее 2 веб-сайта. Файл .sln настроен для компиляции обоих веб-сайтов в конфигурации выпуска.

Моя цель - собрать только 1 веб-сайт для каждого типа сборки, а именно я хочу, чтобы BuildType1 компилировал веб-сайт 1 и BuildType2 для компиляции веб-сайта 2.

Можно ли "изменить" .sln таким образом, чтобы я мог отменить пометку одного из веб-сайтов для компиляции? Поскольку это автоматизированный процесс, я не могу изменить .sln вручную каждый раз, когда хочу скомпилировать только один веб-сайт.

Ответы [ 2 ]

1 голос
/ 11 декабря 2009

Существует два основных способа управления сборкой:

  • создайте отдельный тип сборки в Team Explorer. Он будет иметь свой собственный полностью независимый файл TFSBuild.proj, поэтому он может создавать одну и ту же кодовую базу совершенно другим способом. Настройте SolutionToBuild так, чтобы создать именно то, что вы хотите (как описано в принятом ответе).

  • Используйте один тип сборки и установите его TFSBuild.proj так, чтобы использовать свойство для управления тем, что собирается (это требует более глубокого понимания сценариев MSBuild). В диалоговом окне «Новая очередь» вы можете использовать флаг командной строки / p: для установки свойства по мере необходимости. например "/ p: IncrementalGet = false; IncrementalBuild = false; ForceGet = true" заставит обычно инкрементную сборку выполнить полное перестроение. Это полезно для отдельных ситуаций, но не является хорошей идеей для повседневных сборок, поскольку вам нужно каждый раз устанавливать параметры вручную.

1 голос
/ 30 апреля 2009

Посмотрите раздел SolutionToBuild в файле TFSBuild.proj.

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln">
   <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
   <Properties> Configuration=Release</Properties>
</SolutionToBuild>
...