"error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found" 尝试安装 npm 模块 scrypt 时

"error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found" when trying to install npm module scrypt

我正在尝试安装 npm 模块 scrypt

我知道 scrypt 需要 node-gyp,我在全局安装了它(好几次)。我也知道 node-gyp 需要 python 2.7 和 MS 构建工具。我安装了最新的 python 2.7 版本并安装了 MS Build Tools。我还尝试使用 VS Community Edition 2017。我尝试修复并重新安装两者。

我也安装了npm package windows-build-tools(多次)全局成功。

但是我尝试 npm i scrypt 我遇到了以下错误:

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 bu ild 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:\project\node_modules\scrypt\build\copied_files.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 bu ild 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:\project\node_modules\scrypt\build\scrypt_wrapper.vcxproj]

有什么提示或建议吗?

又过了几个小时,我发现有一个旧安装的 visual studio 2015。我必须先卸载它。我不知道为什么不使用最新的构建工具实例。

在此之后,将 Node 降级到 v8,可以再次安装和编译 scrypt。

我猜是什么为 smonkey 修复了这个问题,他卸载了 Visual Studio 的旧安装,卸载过程也从 %PATH%.

中删除了那个旧的 MSBuild 路径。

因为对我来说,只需从路径中删除旧的 MSBuild.exe 即可修复它。 node-gyp 路径上不需要 MSBuild,但如果路径上的 MSBuild 对于构建目标而言太旧,它就会被绊倒。

因此,要么删除您的 MSBuild 路径,要么确保它指向最新版本。当然,除非您无论如何都想卸载 Visual Studio,但这对某些人来说不是一个选择。

刚遇到这个问题。删除(或取消设置)VCTargetsPath 系统变量为我修复了它。我认为它是由以前的 VS2015 安装创建的,但是删除 VS2015 并没有删除变量。

(Ken Pespisa 已经在评论中发布了此内容,但我在之前访问此页面时错过了它。我将其添加为答案以便人们可以更轻松地找到它。)