MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "4.0"

0.问题描述

  Windows 10

  最近使用npm install安装项目依赖包,当自动执行至node-gyp rebuild时报错:

C:\Users\dsl\Desktop\Pros\ant-design-pro-master-v3.1.0>npm install > weak@1.0.1 install C:\Users\dsl\Desktop\Pros\ant-design-pro-master-v3.1.0\node_modules\weak > node-gyp rebuild C:\Users\dsl\Desktop\Pros\ant-design-pro-master-v3.1.0\node_modules\weak>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "" rebuild ) 在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。 MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "4.0"。 gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:258:23) gyp ERR! stack at emitTwo (events.js:126:13) gyp ERR! stack at ChildProcess.emit (events.js:214:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12) gyp ERR! System Windows_NT 10.0.16299 gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild" gyp ERR! cwd C:\Users\dsl\Desktop\Pros\ant-design-pro-master-v3.1.0\node_modules\weak gyp ERR! node -v v8.9.1 gyp ERR! node-gyp -v v3.6.2 gyp ERR! not ok ....

1.具体原因

  项目依赖中,node-gyp调用MSBuild工具进行组件编译,找不到MSBuild2.0,而系统里只有MSBuild4.0。

2.解决办法

  参考https://github.com/nodejs/node-gyp/issues/629#issuecomment-153196245 mousetraps说的方案1~4,以下是本人的方案1~3:

  1.  下载 Visual C++ 2015 Build Tools,安装时,选择自定义安装,勾选系统版本对应的Windows SDKs ,直至安装完毕;
  2.  下载 Python2.7,安装时,勾选将 Add Python.exe to PATH,即添加至环境变量,直至安装完毕;
  3.     在报错的项目内,重新执行 npm install --msvs_version 2015 进行安装项目依赖,即可完美解决问题了;
     
    C:\Users\dsl\Desktop\Pros\ant-design-pro-master-v3.1.0>npm install --msvs_version 2015
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值