本文记录了一次真实的卸载过程,期间踩到几个坑,整理成可复用的步骤。全程约 15 分钟,最终释放约 750 MB 空间。
很多人以为跑一遍卸载程序就完事了。实测下来,至少有三类东西会留在磁盘上:
残留类型 | 典型位置 | 体积 |
|---|---|---|
多版本共存目录 | C:\Program Files\<App>\v0.1.x\ v0.2.x\ | 可能上 GB |
用户数据目录 | AppData\Roaming\<App>\ | 几十 MB 到数百 MB |
自动更新器缓存 | AppData\Local\<app>-updater\pending\ | 单个安装包可达 500 MB+ |
第三类最隐蔽:它是自动更新机制下载的安装包,卸载主程序时通常不会被顺带清掉。
有输出就先结束进程,否则卸载程序可能删到一半失败。
用户数据目录里有些东西删了找不回来,建议先备份:
重点关注 .db(本地数据库,通常存着会话和配置)、Preferences、*-config.json 这几类。
Windows 下一般在版本目录里,文件名类似 xxxUninst.exe:
直接运行通常会失败:
Program Files 下的程序需要管理员权限。改用 PowerShell 提权,并加上静默参数 /S:
关键点是 -Verb RunAs,会弹 UAC 授权窗口,需要点确认。-Wait 保证等卸载完成再返回。
卸载完先别急着收工,逐一验证:
如果你的机器启用了终端安全策略,以下方式会被拦截,且不建议绕过:
reg.exe 查注册表卸载项 → 程序黑名单Shell.Application)→ 禁止实例化Add-Type 加载 .NET 代码 → 禁止运行时编译影响:拿不到注册表里的 QuietUninstallString,只能走卸载程序本身的交互界面;用不了系统回收站 API。
我试过三种移入回收站的方式,全部被拦:
替代做法:把残留目录 mv 到工作区暂存,告知用户路径,由用户自行处理。这样既完成了清理,也不破坏安全策略。
卸载完成后按这个清单逐项核对:
.db 文件里可能有你回溯不到的东西。整个流程的核心其实就一句话:别信任卸载程序的完整性,自己验证一遍。尤其 Electron 应用的自动更新机制,会在系统各处留下体积可观的缓存,而这些在官方文档里几乎没有提及。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。