不接受MSBuild 15工具版本

DrG*_*iff 6 msbuild build-tools build-server visual-studio-2017

我在构建服务器上安装了Visual Studio 2017的MSBuild(15.4.0)工具.为此,我使用了Visual Studio Downloads中标题为"Visual Studio 2017的构建工具"的链接

MSBuild.exe的路径是:

C:\ Program Files(x86)\ Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

我已将此路径添加到环境变量"路径".

我有一个powershell脚本,以下作为构建任务的主体:

msbuild'..\MyApplication.sln'/ t:Build /tv:15.0/p:GenerateBuildInfoConfigFile = false/p:Configuration = Release/p:RunCodeAnalysis = True /p:VisualStudioVersion=15.0

但是,当执行此操作时(全部由TeamCity处理)我在LOG中找到以下内容:

MSBUILD:错误MSB1040:ToolsVersion无效.工具版本"15.0"无法识别.可用的工具版本是"2.0","3.5","4.0".

该文件表明,15.0应该是正确的.

编辑 从2017 年MSbuild 15中的新功能文档中可以看出:

此版本工具的MSBuildToolsVersion为15.0.程序集版本为15.1.0.0.

但是,2017年文档MSBuild命令行参考指出:

对于MSBuild 4.5,您可以为版本指定以下值:2.0,3.5和4.0.如果指定4.0,则VisualStudioVersion构建属性指定要使用的子工具集.有关更多信息,请参阅Toolset的子工具集部分(ToolsVersion).

所以我对命名法有点困惑:MSBuild 15或MSBuild 4.5 ......?

DrG*_*iff 3

我终于找到了解决办法。原来是这条路走错了。

解决方案是将上面的 powershell 行更改为:

$msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe'
    & msbuild '..\MyApplication.sln' /t:Build /m /p:GenerateBuildInfoConfigFile=false /p:Configuration=Release /p:RunCodeAnalysis=True /p:VisualStudioVersion=15.0
Run Code Online (Sandbox Code Playgroud)