如何在完全安装时使用inno设置创建卸载密钥?

时间:2012-07-03 08:29:51

标签: installation inno-setup uninstall

我正在为我的应用编写一个inno安装程序。我希望这个安装程序既可以作为完整安装程序,也可以作为更新,具体取决于我的应用程序是否已安装。

我能够使用inno设置创建一个“更新”安装,如果我的应用已经安装,它将替换旧文件。如果没有,它只会进行全面安装。

问题在于Windows中的卸载密钥。 Inno setup为每个安装创建一个卸载密钥。因此,如果我进行更新,我的应用程序将有两个卸载密钥。如果我禁用创建卸载密钥,那么完整安装将不会创建它。

可以在运行时关闭CreateUninstallRegKey和UpdateUninstallLogAppName吗?

1 个答案:

答案 0 :(得分:5)

如果完整安装和更新安装之间的大小差异相当小(通常是这种情况),那么您应该使两者完全相同。

最简单(也是最可靠)的方法是确保您设置一个AppId(如果您已经在未能执行此操作的字段中有一些,则设置{{1与现有 AppId)相同的值。

接下来,检查您的AppName条目;确保在所有文件上指定了适当的[Files]。 (作为一般规则,安装到Flags的文件通常应为“{app}”;用户可编辑的文件应为“ignoreversion”;共享库应具有“onlyifdoesntexist” ,但在特定情况下你可能需要不同的东西。)

然后只需设置replacesameversion sharedfileDisableDirPage=auto(并将其他所有内容保留为默认值),Inno将使用原始安装期间输入的值自动跳过目录和“开始菜单”选择页面进行升级。没有混乱,没有大惊小怪。