You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

yarn安装electron-chromedriver报MSB4148配置错误如何解决

Windows下yarn安装electron-chromedriver报MSB4148错误解决方法

复现命令

yarn add --dev electron-chromedriver --network-timeout 100000

核心报错

MSBUILD : Configuration error MSB4148 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0" has zero length

完整构建日志

gyp ERR! build error 
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\vipul\AppData\Roaming\nvm\v16.14.2\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (node:events:526:28)
gyp ERR! stack     at Process.ChildProcess._handle_onexit (node:internal/child_process:291:12)
gyp ERR! System Windows_NT 10.0.19043
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\vipul\software\desktop\webapp\src
gyp ERR! node -v v16.14.2
gyp ERR! node-gyp -v v8.4.1
gyp ERR! not ok
error Command failed with exit code 1.

问题根因

node-gyp调用Visual Studio 2017的MSBuild编译原生依赖时,读取MSBuild 4.0对应的注册表配置项发现值为空,无法定位.NET Framework 4.0构建工具路径,导致编译流程中断。

解决步骤

按顺序操作即可:

  • 修复注册表配置
    1. 按Win+R输入regedit回车打开注册表编辑器
    2. 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0路径
    3. 找到MSBuildToolsPath字符串值,将数值数据设置为C:\Windows\Microsoft.NET\Framework\v4.0.30319\
    4. 64位系统需要额外定位到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\4.0路径,同步修改同名键值为上述路径
    5. 关闭注册表编辑器,重启终端后重新执行安装命令
  • 补全VS构建组件
    如果注册表修改后仍报错,打开Visual Studio 2017 Installer,勾选安装以下组件后重启系统重试:
    • 「使用C++的桌面开发」工作负载
    • .NET Framework 4.0 目标包
    • MSBuild生成工具
  • 临时指定构建路径绕过注册表校验
    执行安装命令前先在终端设置环境变量,指定VCTargets路径:
    set VCTargetsPath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\
    yarn add --dev electron-chromedriver --network-timeout 100000
    
  • 跳过本地编译直接使用预编译包
    不需要本地编译原生模块时,可设置环境变量跳过构建步骤,直接拉取官方预编译的chromedriver二进制文件:
    set ELECTRON_CHROMEDRIVER_SKIP_BUILD=true
    yarn add --dev electron-chromedriver --network-timeout 100000
    

内容的提问来源于stack exchange,提问作者Vipul Learning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 03:15:43