我希望阻止某些解决方案中的特定项目建立(在TeamCity Build Configuration中)以优化我的提交构建反馈的速度(如果你一定要知道的话)。
我知道解决方案配置机制,但不想强制每个我想要关闭的东西的所有排列组合都要用到很多.sln
文件。我有一个基于约定的规则,我想说“如果我正在进行提交构建,我不想做最终的安装包装”。(并且我不想将其分成单独的解决方案)。
我不想使用涉及在.sln
文件或通过[MsBuildEmitSolution][1]
创建的.proj
文件中查找和替换的解决方案。我知道这里有涵盖开箱即用的解决方案和这个略相关的问题的问题。
我看到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替换或类似操作,以达到将Project Y中的“BuildProjectInSolution =“True””更改为“BuildProjectInSolution =“False””的效果?
如果不行,是否可以在“.ccproj”(Azure 1.4包)或“.csproj”(一般项目)文件中进行相对简单的编辑,以使在命令行“msbuild Z.sln”解决方案构建中启用该项目的效果(包括触发依赖项目)被取消?
.sln
文件。我想指出的是,如果我唯一能做的就是强制MSBuild发出一个等效的.proj文件,那就感觉像是在为MSBuild 5改变游戏(或者当VS团队最终意识到.sln文件不是特殊情况对于真正的项目而言是相当重要的时候)存储麻烦。 - Ruben Bartelink