【问题标题】:Getting InnoSetup to use uninstalled app's previous directory让 Inno Setup 使用已卸载的应用程序以前的目录
【发布时间】:2026-02-15 23:20:03
【问题描述】:

有一个应用必须先卸载才能升级(我无法更改)。

当然,新安装的默认目录应该是之前版本的安装位置。但由于该应用已被卸载,UsePreviousAppDir 不起作用。

获取已卸载应用程序目录的最佳方法是什么?有没有存放的地方?如何为此管理新的注册表项?

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

    卸载后无法找到应用程序之前的位置,只能要求用户记住并重新输入。

    但是,此问题的一个简单解决方案是从升级程序本身触发卸载 -- UsePreviousAppDir 在向导首次打开时生效,因此可以安全地发现以前的应用程序目录并在之后的任何时候卸载.最推荐的时间是PrepareToInstall handler

    请记住,您仍然可能无法找到之前的路径,原因可能是用户在运行升级程序之前手动卸载,或者安装失败、崩溃或在成功卸载后被取消以前的版本。所以无论如何你都需要一个备份(比如询问用户,或者假设一些合理的默认值)。

    请确保您确实需要事先卸载 - 虽然在少数情况下需要卸载(例如之前的版本未与 Inno 一起安装 - 在这种情况下 UsePreviousAppDir 不是'也不会帮助你),大多数时候你应该只是安装在顶部,使用标志和[InstallDelete] entries根据需要跳过或删除旧文件。

    【讨论】:

      最近更新 更多