.net 使用MSBuild构建少数项目失败

.net 使用MSBuild构建少数项目失败,.net,visual-studio,jenkins,visual-c++,msbuild,.net,Visual Studio,Jenkins,Visual C++,Msbuild,所有其他C项目文件都是使用MSBuild脚本生成的。 但很少有C++相关的项目在下面的错误中失败—— C:\Program Files x86\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets44,5:错误MSB8020:v140平台的生成工具工具工具集='v140' 找不到。要使用v140构建工具进行构建,请单击 “项目”菜单或右键单击解决方案,然后选择“更新VC”++ 项目。。。。使用v140构建工具安装v140进行

所有其他C项目文件都是使用MSBuild脚本生成的。 但很少有C++相关的项目在下面的错误中失败——

C:\Program Files x86\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets44,5:错误MSB8020:v140平台的生成工具工具工具集='v140' 找不到。要使用v140构建工具进行构建,请单击 “项目”菜单或右键单击解决方案,然后选择“更新VC”++ 项目。。。。使用v140构建工具安装v140进行构建

当我尝试使用命令提示符构建项目时,会出现上述错误,而在尝试使用Jenkins构建项目时,也会出现相同的错误。我们应该如何解决这个问题

你的vs版本是什么?您想要构建的C++项目似乎是 来自VS2015

如果您是vs2013或更早版本,我们可以安装以尝试解决此问题

注意:根据错误消息,项目来自vs2015,当我们从更高的vs版本编译项目时,有时可能会导致兼容性问题。 因此,我建议您将vs更新为vs2015

此外:
右键单击项目名称=>properties=>general=>platform工具集


,然后您可以找到您拥有的工具集版本,并确保v140已成功安装。

解决方案1通过创建一个系统环境变量-VCTargetsPath,其值为-C:\Program Files x86\MSBuild\Microsoft.Cpp\v4.0\v140,解决了在生成服务器上使用命令提示符生成项目的问题

但当试图使用Jenkins构建时,上述解决方案不起作用。下面的解决方案解决了这个问题


解决方案2更改了生成脚本以传递此参数-/p:VCTargetsPath=C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V140

查看在Google中放置错误消息时出现的情况:右键单击项目名称=>properties=>general=>platform工具集显示为-Visual Studio 2015 V140。在这个构建服务器上,VisualStudio有多个版本,分别是2010、12、15、17。我还安装了构建工具2015。我仍然看到同样的错误。还有其他可能的解决办法吗?@对不起,这不起作用。你用什么版本来编译C++项目?我在用vs2012编译C++2015项目时遇到了同样的问题,然后我将平台工具集从v140更改为vs2012v110以解决这个问题。然而,C++项目是一个简单的项目,所以我们不能确定它是否适用于具有多个程序集的项目。正如我提到的,要编译vs2015项目,使用vs2015或更高版本更合适。