如何启动正确版本的Msbuild

时间:2010-04-25 18:05:36

标签: visual-studio-2010 msbuild

当我输入...

Msbuild<Enter>

...在命令提示符下,我得到......

Microsoft (R) Build Engine Version 2.0.50727.4927
[Microsoft .NET Framework, Version 2.0.50727.4927]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

除非我针对Visual Studio 2010 .sln文件运行此错误消息,否则这一切都非常好,但错误消息表明:

MyProject.sln(2): Solution file error MSB5014: File format version is not recognized.  MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.
0 Warning(s)
1 Error(s)

看起来正在调用的MSBuild版本无法理解我的解决方案文件。

我想我会查看我的路径,看看MSBuild从哪里被接收。但是,我的路径似乎没有指向要找到MSBuild的位置。

命令行如何查找正在使用的MSBuild副本?如何更改此版本以便使用最新版本?

4 个答案:

答案 0 :(得分:37)

我发现此问题是因为我的PATH变量未包含对MSBuild.exe的引用。如果其他人遇到此问题,我的解决方案是从命令提示符中明确注册Visual Studio工具的环境变量:

"%VS100COMNTOOLS%"\\vsvars32.bat // VS2010 environment variables
"%VS110COMNTOOLS%"\\vsvars32.bat // VS2012 environment variables
"%VS120COMNTOOLS%"\\vsvars32.bat // VS2013 environment variables

MSBuild.exe现已在PATH

中注册
where msbuild
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

答案 1 :(得分:24)

它必须位于PATH环境中的某个位置。使用'where msbuild'来确定从哪里加载msbuild。

使用Visual Studio命令提示符(2010)快捷方式初始化VS 2010和MSBuild 4.0的路径和其他环境变量。

答案 2 :(得分:2)

更改environment variables

查找/设置您的MSBuild 路径变量为C:\Windows\Microsoft.NET\Framework\v4.0.30319

很明显,上述路径将取决于您的安装位置,但如果不准确,它将会关闭。

答案 3 :(得分:1)

为了构建C#6项目,这对我来说是一个批处理文件

if exist "%ProgramFiles(x86)%\MSBuild\14.0\bin" set MSBUILDLOCATION=%ProgramFiles(x86)%\MSBuild\14.0\bin    

if exist "%ProgramFiles%\MSBuild\14.0\bin" set MSBUILDLOCATION=%ProgramFiles%\MSBuild\14.0\bin

"%MSBUILDLOCATION%\msbuild.exe" "path\to\my\project.csproj"

如果您想支持一系列版本,可以轻松更改版本号(14.0)或添加更多版本号的行(例如12.0和4.0)。