如何在Cruise Control .NET中启用64位工具环境运行MSBuild
解决Cruise Control .NET中VS2015项目C1002堆空间不足问题
核心是让CC.NET的构建过程加载VS2015的64位工具集环境——也就是先执行vcvars64.bat,再调用MSBuild。具体有几种可行方案:
方案1:在CC.NET配置中添加预构建步骤
直接在ccnet.config的项目配置里,给<msbuild>任务加一个<prebuild>环节,先执行64位工具集的环境脚本:
<project name="你的项目名称"> <tasks> <msbuild> <!-- 先加载VS2015 x64工具集环境 --> <prebuild> <exec> <executable>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat</executable> <successExitCodes>0</successExitCodes> </exec> </prebuild> <!-- 调用64位MSBuild执行构建 --> <executable>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe</executable> <workingDirectory>你的项目根目录路径</workingDirectory> <projectFile>你的解决方案文件.sln</projectFile> <buildArgs>/p:Configuration=Release /p:Platform=x64</buildArgs> </msbuild> </tasks> </project>
注意:vcvars64.bat的路径要匹配你VS2015的实际安装位置,默认路径如上,若你的VS安装在其他盘,自行调整。
方案2:用批处理脚本封装环境加载+构建命令
写一个批处理脚本,把加载环境和执行MSBuild的逻辑打包在一起,再让CC.NET调用这个脚本:
示例批处理脚本(BuildWithX64Env.bat)
@echo off :: 加载VS2015 x64工具集环境 call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat" :: 执行MSBuild构建发布版本 "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" "你的项目根目录路径\你的解决方案文件.sln" /p:Configuration=Release /p:Platform=x64
CC.NET配置调用脚本
<project name="你的项目名称"> <tasks> <exec> <executable>你的脚本路径\BuildWithX64Env.bat</executable> <workingDirectory>你的项目根目录路径</workingDirectory> </exec> </tasks> </project>
验证环境是否生效
可以在批处理脚本里加一行set VCINSTALLDIR,构建时查看CC.NET日志,确认输出的路径是VS2015的VC目录,以此验证64位工具集环境已正确加载。
内容的提问来源于stack exchange,提问作者Jana Andropov
相关产品推荐
相关产品推荐

