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
相关产品推荐
相关产品推荐

