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

Inno Script安装器:unins000文件隐藏/迁移后卸载报错问询

解决Inno Setup卸载文件隐藏/移至隐藏文件夹后的卸载报错问题

嘿,我明白你遇到的麻烦了——把卸载文件移到隐藏文件夹后,控制面板卸载时找不到程序对吧?这事儿我之前帮不少人解决过,其实核心问题就是注册表记录的卸载路径没跟上你移动文件的操作,系统找不到unins000.exe才会抛出那个报错。下面给你两种靠谱的解决方案,按需选择就行:

方案一:直接隐藏卸载文件(最简单可靠)

Inno Setup其实自带了隐藏卸载程序的参数,根本不用手动折腾文件夹。只需要在你的脚本[Setup]段里加上一行:

[Setup]
UninstallerHidden=yes

加了这个参数后,安装完成后生成的unins000.exe和unins000.dat会自动被设为隐藏属性,系统依然能在默认路径找到它们,控制面板卸载完全正常,省心又省力。

方案二:正确配置移至隐藏文件夹(适合必须用独立文件夹的场景)

如果你一定要把卸载文件放到单独的隐藏文件夹里,那得让Inno Setup全程“知晓”这个路径,不能只手动创建文件夹再丢文件。按下面的步骤修改脚本:

  1. 创建隐藏文件夹
    在脚本的[Dirs]段添加创建隐藏文件夹的指令,比如用.Uninstall作为文件夹名(Windows中前缀带.的文件夹默认隐藏):
[Dirs]
Name: "{app}\.Uninstall"; Attributes: hidden
  1. 指定卸载文件输出路径
    在[Setup]段里用UninstallOutputDir参数告诉Inno把卸载文件生成到这个隐藏文件夹里,同时它会自动更新注册表的卸载路径:
[Setup]
UninstallOutputDir={app}\.Uninstall
  1. 卸载后清理空文件夹
    为了卸载完成后不留空文件夹,在[UninstallDelete]段加上清理指令:
[UninstallDelete]
Type: dirifempty; Name: "{app}\.Uninstall"

关键提醒

你之前报错的原因大概率是没设置UninstallOutputDir,导致注册表中记录的卸载路径还是默认的{app}目录,但你已经把文件移走了,控制面板自然找不到。改完上面的配置后,你可以去注册表验证一下:

  • 打开注册表编辑器(运行regedit)
  • 找到路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[你的程序ID]
  • 查看UninstallString值,应该指向{app}\.Uninstall\unins000.exe,这样就没问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:51:48