在 Inno Setup 卸载程序上选择要卸载的自定义组件

Posted

技术标签:

【中文标题】在 Inno Setup 卸载程序上选择要卸载的自定义组件【英文标题】:Select custom components to uninstall on Inno Setup uninstaller 【发布时间】:2011-09-18 18:18:27 【问题描述】:

我使用 Inno Setup 制作了安装程序。它由多个可执行文件组成,它们都位于 Program Files“APP”文件夹中。但是对于每个可执行文件,此“APP”文件夹中都有不同的子文件夹。

因为每个可执行文件的用途都不同,所以我想创建卸载程序,我可以在其中选择要卸载的组件(例如添加/删除程序中的更改按钮)。目前卸载程序会删除所有应用程序。

一种选择是为每个组件创建不同的安装程序,然后创建包含其他安装程序的安装程序,但这太奇怪了。

是否可以创建带有选项的自定义卸载程序来选择我要卸载的组件?

【问题讨论】:

【参考方案1】:

您似乎需要为您的应用程序设置一个修改/修复设置选项,对吧? 看看这个名为UninsHs的扩展

注意:在 Google 中搜索我在其他网站上找到了另一个更新版本,但我不确定它是否合法。

【讨论】:

也找到了这个 UninsHs。但我想知道 Inno Setup + Pascal 脚本是否可以做到这一点。【参考方案2】:

可以在 Inno 卸载程序中执行此操作,但它不会“适合”向导样式,并且需要显示您自己的表单,并在您删除所需的部分后取消卸载。

另一种方法是使用设置(稍微更适合这种情况)并处理被勾选和取消勾选的组件。

不过,这两者都需要编写相当广泛的 [代码]。

【讨论】:

您能否阐明“另一种方法是使用设置...”的意思?如果您有自定义的“安装”向导页面(即要安装的所有组件的列表),如何在卸载期间利用设置部分?谢谢 您应该能够使用该设置来添加/删除单个组件。虽然 Inno 只会自动安装新选择的组件并更新/修复以前选择的组件,但您需要通过检测组件状态并删除适当的文件/注册表值来自己处理任何组件的卸载。

以上是关于在 Inno Setup 卸载程序上选择要卸载的自定义组件的主要内容,如果未能解决你的问题,请参考以下文章

使用 inno setup 卸载默认图标

inno setup卸载应用程序之前启动另一应用程序

更改 Inno Setup 卸载程序的默认名称以避免命名冲突

关于Inno Setup卸载程序删除文件夹的问题

Inno setup 卸载时删除程序文件夹(文件)

Inno Setup命令行安装卸载参数