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

Electron-builder Windows平台修改安装目录问题求助

解决Electron-builder构建的Windows应用自定义安装目录问题

嘿,我看你尝试用installer.nsh修改安装路径但没生效,大概率是两个关键配置没做对——electron-builder的NSIS参数没开权限,还有你的脚本写法没戳中核心逻辑。给你一步步调整:

第一步:先改package.json里的打包配置

首先得在package.json的build字段里给NSIS加几个关键配置,不然默认的Per User安装模式会强制把程序塞到AppData/Roaming里,你改注册表也没用:

"build": {
  "nsis": {
    "allowToChangeInstallationDirectory": true, // 允许用户手动修改安装路径
    "perMachine": true, // 切换为全局安装模式(这步是核心!)
    "requestedExecutionLevel": "highestAvailable", // 申请管理员权限,确保能写入C盘
    "include": "build/installer.nsh" // 指定你自定义的脚本路径
  },
  // 其他打包配置...
}

解释下:perMachine设为true后,安装程序会默认指向系统级目录(比如Program Files),而不是用户个人的AppData文件夹。

第二步:修正你的installer.nsh脚本

你之前的脚本只写了注册表,但没直接设置NSIS的$INSTDIR变量——这才是安装程序真正读取的路径。改成下面这样:

!macro preInit
  SetRegView 64
  ; 直接把默认安装目录设为你想要的路径
  StrCpy $INSTDIR "C:\CustomPath"
  ; 把路径写入注册表,方便程序后续读取安装位置
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  SetRegView 32
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
!macroend

这样一来,安装包启动时会直接把默认路径设为C:\CustomPath,同时更新注册表记录,完美覆盖默认逻辑。

第三步:重新打包测试

改完配置和脚本后,重新跑打包命令(比如electron-builder build --win),然后运行生成的安装包,你会看到默认路径已经变成你设置的自定义目录,而且还能手动修改。

如果还是有问题,检查下installer.nsh的路径是不是和package.json里include字段指定的一致,别写错路径了~

内容的提问来源于stack exchange,提问作者s-leg3ndz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:14:34