我有一个nant脚本,在其中一个目标中使用msbuild标签来构建Visual Studio 2010解决方案。
问题在于当它到达这个点时失败了,错误是:
Solution file error MSB5014: File format version is not recognized. MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.
Failed to start MSBuild.
External Program Failed: C:\Windows\Microsoft.NET\Framework\v2.0.50727\msbuild.exe (return code was 1)
错误很有道理,如果它调用的是.NET 2.0版本的MSBuild,则无法编译VS2010解决方案。然而,我无法弄清如何让它调用正确版本的MSBuild。
如果我运行'where MSBuild'(从与构建脚本失败相同的VS2010命令提示符中),我会得到:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
如果我执行“msbuild /version”(同一个窗口),我会得到以下结果:
Microsoft (R) Build Engine version 4.0.30319.17929
[Microsoft .NET Framework, version 4.0.30319.18034]
Copyright (C) Microsoft Corporation. All rights reserved.
4.0.30319.17929
所有东西看起来都应该使用4.0版本,但事实并非如此。有任何想法吗?我知道我以前处理过这个问题,但是现在想不起来了。