我有一个包含几个dirs.proj和cs/ccproj文件的项目结构。
当开发人员和某些构建运行时,我不想生成云服务.cspkg文件(当我们不需要它们时会花费太长时间)。我们的构建基础架构团队设置了一个额外的属性"BuildCloudPackages"=='true',我可以使用它来仅在需要时构建云包。
我想停止CorePublish并构建,除非dirs.proj中的所有ccproj的BuildCloudPackages都设置为true。
有没有办法将条件改造到现有的目标上?或者有条件地在dirs.proj中包含ProjectFile。或者在Choose/When中有条件地重新定义目标?或者通过禁用它们的一些前提条件来停止构建/发布?或者在该条件下从默认目标中删除Build和CorePublish?
发布于 2019-01-24 16:21:01
我使用条件导入解决了这个问题,其中一个禁用了我不想运行的任务,另一个只在我请求时才添加我需要的内容。
<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>https://stackoverflow.com/questions/54331505
复制相似问题