我在构建服务器上安装了Visual Studio 2017的MSBuild(15.4.0)工具。为此,我使用了名为" Visual Studio for Visual Studio 2017"来自Visual Studio Downloads
MSBuild.exe的路径是:
C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017 \编译工具\的MSBuild \ 15.0 \滨
我已将此路径添加到环境变量'路径'。
我有一个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"
documentation表明15.0应该是正确的。
修改 从What's New in MSBuild 15上的2017年文档中可以看出:
此版本工具的MSBuildToolsVersion为15.0。该 程序集版本是15.1.0.0。
但是,2017年文档MSBuild Command Line Reference声明:
对于MSBuild 4.5 ,您可以为版本指定以下值: 2.0,3.5和4.0。如果指定4.0,则VisualStudioVersion构建属性指定要使用的子工具集。有关更多信息,请参阅 Toolset的子工具集部分(ToolsVersion)。
所以我对命名法有点困惑:MSBuild 15或MSBuild 4.5 ......?
答案 0 :(得分:3)
最后解决了这个问题 - 是的,这是错误的路径。
解决方案是将上面的powsershell线路改为:
$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