有一个应用程序必须先卸载才能升级(不是我可以改变的)。
当然,新安装的默认目录应该是安装以前版本的位置。但是,由于已卸载应用程序,因此UsePreviousAppDir不起作用。
获取已卸载应用程序目录的最佳方法是什么?它存放在哪里?如何为此管理新的注册表项?
答案 0 :(得分:0)
在卸载应用程序后,无法找到应用程序的先前位置,除非要求用户记住此内容并重新输入。
但是,此问题的一个简单解决方案是从升级程序本身触发卸载 - UsePreviousAppDir
在向导首次打开时生效,因此可以安全地发现以前的应用程序目录并在任何时候卸载之后。建议的最长时间来自PrepareToInstall
handler。
请记住,您仍然可能无法找到之前的路径,因为用户在运行升级程序之前手动卸载,或者因为安装失败,崩溃或在成功卸载后被取消先前的版本。因此,无论如何,您都需要备份(例如询问用户或假设某些合理的默认值)。
确实你确实需要事先卸载 - 虽然有一些情况需要它(例如以前的版本没有安装Inno - 在这种情况下UsePreviousAppDir
也不会帮助你),大部分时间你应该只安装在顶部,使用标志和[InstallDelete]
entries来跳过或删除旧文件。