MSBuild 15 工具版本未被接受

MSBuild 15 Tools Version not accepted

我已经在构建服务器上安装了 Visual Studio 2017 的 MSBuild (15.4.0) 工具。为此,我使用了 Visual Studio Downloads

中名为 "Build Tools for Visual Studio 2017" 的 link

MSBuild.exe 的路径是:

C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin

我已将此路径添加到环境变量 'path'。

我有一个 powershell 脚本,其中包含以下内容作为构建任务的主体:

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

但是,执行此操作时(全部由 TeamCity 处理)我在日志中发现以下内容:

MSBUILD : error MSB1040: ToolsVersion is not valid. The tools version "15.0" is unrecognized. Available tools versions are "2.0", "3.5", "4.0".

documentation 建议 15.0 应该是正确的。

编辑What's New in MSBuild 15 的 2017 年文档中指出:

MSBuildToolsVersion for this version of the tools is 15.0. The assembly version is 15.1.0.0.

但是,2017 年的文档 MSBuild Command Line Reference 指出:

For MSBuild 4.5, you can specify the following values for version: 2.0, 3.5, and 4.0. If you specify 4.0, the VisualStudioVersion build property specifies which sub-toolset to use. For more information, see the Sub-toolsets section of Toolset (ToolsVersion).

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

我终于找到了解决方法。是路径不对。

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

$msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin\msbuild.exe'
    & msbuild '..\MyApplication.sln' /t:Build /m /p:GenerateBuildInfoConfigFile=false /p:Configuration=Release /p:RunCodeAnalysis=True /p:VisualStudioVersion=15.0