如何让MsBuild使用特定的编译器?

时间:2013-09-17 21:24:55

标签: compilation msbuild

我们正在转向Visual Studio 2012,并希望确保我们所有的程序都能正常运行。我已经广泛测试了一个C#程序,并希望生产版本能够使用VS 2012。

我们正在使用CruiseControl进行生产构建,并使用MsBuild.exe构建.NET程序。使用的XML和参数没有提到哪个编译器版本,并且在查看构建输出时我无法分辨使用哪个编译器。 (构建服务器具有VS 2008,VS 2010和VS 2012可用。)

当我双击解决方案文件时,它出现在VS 2010中,无论我上次使用2010或2012打开并编译它。我能够通过在文本编辑器中查看解决方案文件的前两行来改变它:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

并将2010年改为2012年。

为了确保CruiseControl / MsBuild使用2012编译器编译它,我可以进行上述更改吗?我应该这样做吗?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如果CruiseControl使用msbuild.exe编译您的解决方案并且您希望使用特定版本的MsBuild ToolSet,请查看msbuild.exe / toolsversion(/ tv)开关,该开关将覆盖任何项目特定的版本设置在.csproj文件中(例如<Project ToolsVersion="3.5" ...