詹金斯 | Node-Gyp 错误 MSB8020:找不到 v141 的构建工具(平台工具集 = 'v141')

Jenkins | Node-Gyp error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found

我是新手,正在尝试设置一个新的 Jenkins 构建服务器,我正在尝试自动化一个节点插件 api 项目。我仅在 Jenkins 服务器上面临以下问题,即使我尝试 运行 cmd 提示符下的 node-gyp,它工作正常。

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [C:\jenkins_builds\Reporter-Backend\workspace\build\copy_binary.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [C:\jenkins_builds\Reporter-Backend\workspace\node_modules\node-addon-api\src\nothing.vcxproj]
gyp ERR! build error 
gyp ERR! stack Error: `msbuild` failed with exit code: 1

Node version v10.15.3
Node-Gyp v4.0.0
Jenkins v2.164.3
Visual Studio 2019

我已尝试设置环境路径以及在 Gyp 文件中设置正确的 msbuild 路径。但是在 Jenkins 中每次构建都失败并出现上述问题。

提前致谢。

看来你要构建的项目来自VS2017,其C++ ToolSet为V141

正如你所说,你使用的是 VS2019,它的工具集是 V142。

要修复它:

1.We可以re-targetV142 ToolSet的解决方案,然后VS2019 msbuild工具构建好(在VS2019中打开.sln,right-clicksolutionName并选择re-target)

2.Also,可以选择在VS2019中安装ToolSet V141

在 VS2019 中,转到工具=>获取工具和功能=>安装适用于 VS2017 的 C++ 构建工具:

(假设您的项目在 X64/X86,而不是 Arm)

点击修改安装V141 Toolset,新建一个C++项目,Right-clickProject=>properties查看我们是否安装ToolSet v141成功:

另外,也有可能是您安装了ToolSet,导致错误的msbuild路径或参数错误。

所以确保 VS2019 的 msbuild 路径是:

C:\Program Files (x86)\Microsoft Visual Studio19\Professional\MSBuild\Current\Bin\MSBuild.exe 

更新:

尝试设置VCTargetsPath: VCTargetsPath= C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Microsoft\VC\v150\ 在vs2019中安装工具集后。