Installation 如何仅在使用inno安装程序完全安装时创建卸载密钥?

Installation 如何仅在使用inno安装程序完全安装时创建卸载密钥?,installation,inno-setup,uninstallation,Installation,Inno Setup,Uninstallation,我正在为我的应用程序编写inno安装程序。如果我的应用程序已经安装,我希望此安装程序可以作为完整安装程序和更新程序运行 我能够使用inno安装程序创建更新安装,如果我的应用程序已经安装,它将替换旧文件。如果没有,它将只进行完整安装 问题在于Windows中的卸载密钥。Inno安装程序为每个安装创建一个卸载密钥。因此,如果我进行更新,我的应用程序将有两个卸载键。如果禁用卸载密钥的创建,则完整安装将不会创建它 CreateUninstallRegKey和UpdateUninstallLogAppNa

我正在为我的应用程序编写inno安装程序。如果我的应用程序已经安装,我希望此安装程序可以作为完整安装程序和更新程序运行

我能够使用inno安装程序创建更新安装,如果我的应用程序已经安装,它将替换旧文件。如果没有,它将只进行完整安装

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


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

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

最简单、最可靠的方法是确保设置单个AppId(如果在执行此操作失败的字段中已经有一些AppId),然后将AppId设置为与现有AppName相同的值

接下来,检查[文件]条目;确保在所有文件上指定了适当的标志。作为一般规则,安装到{app}的文件通常应具有ignoreversion;用户可编辑的文件应该只有一个索引列表;共享库应该有replaceSameVersionSharedFile,但在特定情况下可能需要一些不同的东西


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

如果完整安装和更新安装(通常情况下)在大小上有相当小的差异,那么您应该使两者实际上是完全相同的安装程序

最简单、最可靠的方法是确保设置单个AppId(如果在执行此操作失败的字段中已经有一些AppId),然后将AppId设置为与现有AppName相同的值

接下来,检查[文件]条目;确保在所有文件上指定了适当的标志。作为一般规则,安装到{app}的文件通常应具有ignoreversion;用户可编辑的文件应该只有一个索引列表;共享库应该有replaceSameVersionSharedFile,但在特定情况下可能需要一些不同的东西


然后只需设置DisableDirPage=auto和DisableProgramGroupPage=auto,并将其他所有内容保留为默认值,Inno将使用原始安装过程中输入的值自动跳过目录和开始菜单选择页面进行升级。不乱不乱。

你错了。如果安装具有相同的AppID,则它们将是相同的安装并具有相同的卸载条目。从您对升级的评论中,我假设他们共享相同的AppID。有关详细信息,请参阅。您错了。如果安装具有相同的AppID,则它们将是相同的安装并具有相同的卸载条目。从您对升级的评论中,我假设他们共享相同的AppID。更多细节请参见。+1从我这里,你和迪安娜是对的,我只是原样回答了这个问题,没有考虑后果。谢谢+从我看来,你和迪安娜是对的,我只是原封不动地回答了这个问题,没有考虑后果。谢谢