如何让install4j附加安装程序查找以前的安装

如何让install4j附加安装程序查找以前的安装,install4j,Install4j,如果我的加载项安装程序安装在非标准位置,则无法在“欢迎”屏幕上找到以前的安装。为了解决这个问题,我运行了一个预激活脚本,通过id查找位置并设置installation directory变量。突出的代码: ApplicationRegistry.ApplicationInfo[] applicationInfos = ApplicationRegistry.getApplicationInfoById(appid); File dir = applicationInfos[0].getInst

如果我的加载项安装程序安装在非标准位置,则无法在“欢迎”屏幕上找到以前的安装。为了解决这个问题,我运行了一个预激活脚本,通过id查找位置并设置installation directory变量。突出的代码:

ApplicationRegistry.ApplicationInfo[] applicationInfos = ApplicationRegistry.getApplicationInfoById(appid);

File dir = applicationInfos[0].getInstallationDirectory();

context.setInstallationDirectory(dir);
这适用于Linux(欢迎屏幕提示确认更新),但不适用于Windows(显示习惯的欢迎屏幕)。在Windows上,后续屏幕将提示正确的目录,该目录与注册表中的目录相匹配

那么,在install4j版本5.1.6中,这是正确的方法吗


谢谢你的帮助

这是一个将在5.1.11中修复的错误。

附加安装程序不需要此脚本。您确定安装程序->更新选项上的设置正确吗,尤其是主产品的应用程序ID?在Linux-64和Windows-64上,我发现如果没有此脚本,当应用程序安装在默认位置以外的任何位置时,加载项安装程序找不到以前的安装(在“配置媒体文件”下指定)。我确信应用程序ID是正确的,因为我使用字符串appid=(字符串)context.getAddOnApplicationId()查找appid,脚本返回正确的目录。感谢您的帮助!问题就出在欢迎屏幕上吗?对于加载项安装程序,“更新安装警报”不应选择该屏幕的属性。是的,问题只是欢迎屏幕,仅在Windows上,并且仅针对非标准安装位置。如果取消选择“更新安装警报”然后欢迎屏幕不会提示在Linux或Windows上进行更新。选择此警报后,会提示在Linux上进行更新,但不会在Windows上进行更新。我更希望显示警报,因为对话框中没有指示用户正在进行更新,而不是重新安装。谢谢您的建议。谢谢,我现在就收到了。如果您希望nt一个修复此问题的临时版本,请联系support@ej-否则,您可以将“欢迎”屏幕与您自己的表单屏幕交换。加载项安装程序将始终安装到现有安装中,否则它只是一个消息对话框。