gpt4 book ai didi

java - Install4j 64 位安装程序不会卸载以前的 32 位版本

转载 作者:行者123 更新时间:2023-11-30 05:31:03 25 4
gpt4 key购买 nike

随着最后一个版本的增加,我们将应用程序从 32 位更改为 64 位,但现在我们的安装程序无法识别何时安装了以前的版本,因此在安装新版本时不会卸载以前的版本.

示例:应用程序版本 1.0.0 32 位应用程序版本 2.0.0 32 位应用版本3.0.0 64位

已安装应用程序版本 1.0.0 并执行版本 2.0.0 安装程序 -> 卸载应用程序版本 1.0.0 并安装版本 2.0.0。

已安装应用程序版本 2.0.0 并执行版本 3.0.0 安装程序 ->应用程序版本 2.0.0 未受影响,并安装版本 3.0.0。

我们没有更改应用程序 ID。

2.0.0 版安装程序是使用 Install4j 6.1.6 生成的,3.0.0 版安装程序是使用 7.0.10 生成的

最佳答案

以前的版本存储在注册表中,从 install4j 8.0 开始,64 位安装程序不会检查 32 位注册表中的以前安装,以防止 64 位安装最终出现在 32 位程序文件目录中。

要卸载 32 位安装,请将“设置变量”操作添加到安装程序的“启动”节点,变量名称为“previousDir”和脚本

if (!context.isUpdateInstallation()) {
ApplicationRegistry.ApplicationInfo[] infos =
ApplicationRegistry.getApplicationInfoById(context.getApplicationId());
if (infos.length > 0) {
return infos[0].getInstallationDirectory().getPath();
}
}
return null;

然后将“执行以前的卸载程序”操作添加到“安装”屏幕中“安装文件”操作之前,并将“安装目录”属性设置为

${installer:previousDir}

和条件表达式

context.getVariable("previousDir") != null

关于java - Install4j 64 位安装程序不会卸载以前的 32 位版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57557144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com