【发布时间】:2014-02-26 16:16:21
【问题描述】:
如果安装在非标准位置,我的附加安装程序无法在“欢迎”屏幕上找到以前的安装。为了解决这个问题,我运行了一个预激活脚本来通过 id 查找位置并设置安装目录变量。显着代码:
ApplicationRegistry.ApplicationInfo[] applicationInfos = ApplicationRegistry.getApplicationInfoById(appid);
File dir = applicationInfos[0].getInstallationDirectory();
context.setInstallationDirectory(dir);
这适用于 Linux(欢迎屏幕提示确认更新),但不适用于 Windows(显示惯用的欢迎屏幕)。在 Windows 上,随后的屏幕会提示正确的目录,该目录与注册表中的内容相匹配。
那么,这是在 install4j 版本 5.1.6 中执行此操作的正确方法吗?
感谢您的帮助!
【问题讨论】:
-
附加安装程序不需要此脚本。你确定你在Installer->Update options上的设置是正确的,尤其是主产品的应用ID?
-
在 Linux-64 和 Windows-64 上,我发现如果没有此脚本,当应用程序安装在默认位置以外的任何位置(指定在配置媒体文件下)。我确定应用程序 ID 是正确的,因为我使用 String appid = (String)context.getAddOnApplicationId() 查找 appid 并且脚本返回了正确的目录。感谢您的帮助!
-
所以问题只是欢迎屏幕吗?对于附加安装程序,不应选择该屏幕的“更新安装警报”属性。
-
是的,问题只是欢迎屏幕,仅在 Windows 上,并且仅针对非标准安装位置。如果我取消选择“更新安装警报”,那么欢迎屏幕不会提示 Linux 或 Windows 上的更新。选择此警报后,会提示在 Linux 上进行更新,而不是在 Windows 上。我更愿意显示警报,因为对话框中没有指示用户正在进行更新,而不是重新安装。感谢您的建议。
-
谢谢,我知道了。如果您想要修复此问题的临时版本,请联系 support@ej-technologies.com。否则,您可以将“欢迎”屏幕与您自己的表单屏幕交换。附加安装程序将始终安装到现有安装中,否则它只是一个消息对话框。
标签: install4j