在运行需要节点-gyp重新构建的npm install时,引发以下生成错误:
MSB8020:无法找到用于v120 (Platform = 'v120')的构建工具。若要使用v120生成工具进行生成,请安装v120生成工具。或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重定向获取解决方案”,升级到当前的Visual工具。
系统信息
发布于 2015-09-14 01:48:36
tl;dr
使用msvs_version param:npm install --msvs_version=2015
如果msvs_version参数不起作用怎么办?
如果msvs_version param不能工作,可能是因为您没有安装VisualC++ 2015构建环境。
安装可视化C++构建环境
选项1: Visual Studio 2015
选项2: 2015年可视化C++构建工具
作为VS2015的替代方案,您可以安装微软发布的Visual C++ Build Tools 2015:
使用msvs_version
现在已经安装了Visual 2015构建环境,您可以告诉C++通过msvs_version param使用它:
npm install --msvs_version=2015配置选项(不需要)
可以选择地,而不是在命令提示符下指定msvs_version,可以通过将npmrc或package.json添加到npmrc或package.json来将npm配置为始终包含msvs_version param:
npmrc
打开PowerShell并运行npm config set msvs_version 2015,这将将此param添加到用户npmrc文件中。从今以后,每次您运行npm install时,作为这个用户,msvs_version=2015参数将自动包括在内。
如果计划使用不同的Windows帐户登录,并且希望此设置应用于计算机上的所有帐户,则可以选择包括全局标志
npm config set msvs_version 2015 --global。
package.json
修改项目的package.json文件,包括:
"config": {
"msvs_version": 2015
}从今以后,每次您运行npm install时,该项目的msvs_version=2015参数将自动包括在内。
条款修订
发布于 2015-11-24 11:25:05
我想在2蟾蜍的回答中添加一个评论,但是堆栈溢出不允许我这样做。可以使用以下命令全局设置msvs_version:
npm config set msvs_version 2015 --global这样就可以将它保存在每个projects config对象中。
发布于 2016-02-23 02:06:07
我将分享这个答案,因为没有其他任何一个解决了我的问题。我有相同的错误,但设置msvs参数:
npm install --msvs_version=2015
解决不了问题。我可以看出,不管我做了什么,它都找错了工具集的位置。
长话短说,我了解到MSBuild现在是用Visual打包的,而不再是用.NET打包的。
C:\Windows\Microsoft.NET\Framework\v4.0.30319;因此,错误的(旧的)版本的MSBuild被调用。我删除了这个条目,并添加了与VS2015相关的以下路径:
C:\Program Files (x86)\MSBuild\14.0\Bin\问题解决了。
https://stackoverflow.com/questions/32556295
复制相似问题