我想禁止在解决方案中构建某些项目(在 TeamCity 构建配置中,以优化我的提交构建反馈的速度,如果您必须知道的话)。
我知道解决方案配置机制,但不想强迫大量.sln
文件以我希望能够关闭的事物的每一个排列结束。我有基于约定的规则,我想说“如果我正在执行提交构建,我不想进行最终的安装程序打包”。(而且我不想把它分解成一个单独的解决方案)。
我不希望使用涉及在.sln
文件或.proj
通过[MsBuildEmitSolution][1]
. 我知道这里的问题涵盖了开箱即用的解决方案和这个稍微相关的问题。
我看到 MSBuild/v:diag
说:
2>Target "Build" in file "Z.sln.metaproj" from project "Z.sln" (entry point):
Using "MSBuild" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "MSBuild"
Global Properties:
BuildingSolutionFile=true
CurrentSolutionConfigurationContents=<SolutionConfiguration>
<ProjectConfiguration Project="{C83D035D-169B-4023-9BEE-1790C9FE22AB}" AbsolutePath="X.csproj" BuildProjectInSolution="True">Debug|AnyCPU</ProjectConfiguration>
<ProjectConfiguration Project="{15E7887D-F1DB-4D85-8454-E4EF5CBDE6D5}" AbsolutePath="Y.csproj" BuildProjectInSolution="True">Debug|AnyCPU</ProjectConfiguration>
</SolutionConfiguration>
所以问题是:
有没有一种巧妙的方法可以让我进行 XPath 替换或类似操作,以产生更改为上述项目 Y的效果BuildProjectInSolution="
True
"
BuildProjectInSolution="
False
"
如果做不到这一点,我是否可以在.ccproj
(Azure 1.4 包)或(一般项目)文件中进行相对简单的编辑,以导致在命令行解决方案构建.csproj
中启用的项目的效果(包括触发依赖项目)msbuild Z.sln
被取消?