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

Electron-builder自定义NSIS卸载脚本安装时误删文件求助

问题原因与解决方案

你的问题出在自定义卸载宏的名称不符合electron-builder的NSIS模板要求,导致宏内的删除代码被错误注入到安装流程中执行。

具体问题

electron-builder的NSIS模板只识别特定名称的自定义宏,其中卸载阶段的宏必须命名为customUninstall(注意是小写的n)。你写的customUnInstall(大写I)无法被识别为卸载专属宏,因此宏内的代码会被直接包含到安装脚本里,导致安装时就执行了删除文件的操作。

修正步骤

  1. 修改build/installer.nsh中的宏名称为customUninstall:
!macro customUninstall
   SetShellVarContext current
   Delete "$LocalAppdata\MyUI\.settings.db"
   Delete "$LocalAppdata\MyUI\.contrib.db"
!macroend
  1. 重新打包安装程序,此时删除逻辑只会在卸载阶段触发。

额外说明

  • 你的package.json中设置了deleteAppDataOnUninstall: true,如果$LocalAppdata\MyUI是应用的默认AppData目录,这个选项会自动删除整个目录,可能不需要额外的自定义删除逻辑;如果需要精准删除特定文件,保留修正后的自定义宏即可。
  • SetShellVarContext current搭配perMachine: true的设置是正确的,确保卸载时操作的是当前用户的LocalAppData目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:24:56