我有一个包含几个dirs.proj和cs / ccproj文件的项目结构。
当开发人员和某些内部版本运行时,我不想生成云服务.cspkg文件(不需要它们会花费很长时间)。我们的构建基础架构团队设置的是一个额外的属性“ BuildCloudPackages” =='true',我只能在需要时使用它来构建云包。
除非在dirs.proj中将所有ccproj的BuildCloudPackages设置为true,否则我想停止CorePublish和Build。
是否有一种方法可以对现有目标进行改造?或有条件地在dirs.proj中包含一个ProjectFile。还是有条件地在“选择/何时”内重新定义目标?还是通过禁用某些先决条件来停止构建/发布?还是根据条件从默认目标中删除Build和CorePublish?
答案 0 :(得分:0)
我使用条件导入解决了该问题,其中一个禁用了我不想运行的任务,一个仅在需要时添加我需要的东西。
<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>