Отключите предопределенные цели (например, CoreBuild и CorePublish), если свойство установлено - PullRequest
0 голосов
/ 23 января 2019

У меня есть структура проекта с несколькими файлами dirs.proj и cs / ccproj.

Когда работают разработчики и некоторые сборки, я не хочу создавать файлы .cspkg облачного сервиса (это занимает слишком много времени, когда они нам не нужны). Наша команда по сборке инфраструктуры настроила дополнительное свойство "BuildCloudPackages" == 'true', которое я могу использовать для сборки облачных пакетов только при необходимости.

Я хочу остановить CorePublish и Build, если для BuildCloudPackages не установлено значение true для всех ccproj в dirs.proj.

Есть ли способ изменить условия к существующим целям? Или условно включая ProjectFile в dirs.proj. Или условно переопределить цели внутри выбора / когда? Или прекратить сборку / публикацию, отключив некоторые их предварительные условия? Или удалить Build и CorePublish из заданных по умолчанию целей при условии?

1 Ответ

0 голосов
/ 24 января 2019

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

<Import Project="..\..\..\targets\DisableBuild.targets"
        Condition="'$(BuildCloudPackages)'!='true'" />
<Import Project="..\..\..\targets\CustomTasks.targets"
        Condition="'$(BuildCloudPackages)'=='true'" />

Где файл отключения выглядит примерно так:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="CoreBuild" />
  <Target Name="CorePublish" />
</Project>
...