gpt4 book ai didi

java - Install4j - 卸载具有不同应用程序 ID 的旧应用程序

转载 作者:行者123 更新时间:2023-11-30 06:21:59 25 4
gpt4 key购买 nike

我们目前为每个发布的新产品版本使用不同的随机生成的应用程序 ID 和安装目录。例如:

  • 版本 10 将具有应用 ID 12345 和“ProductName10”目录
  • 版本 11 的应用 ID 为 98765,目录为“ProductName11”

我们选择为每个新版本使用单独的 ID 和安装目录,以便用户无需删除以前的版本即可演示新版本。如果我们使用相同的 ID,它将覆盖以前的版本并使它们的许可证失效。

但是,对于知道自己想要升级的用户来说,安装新版本然后查找并运行先前版本的卸载程序需要两个步骤。我们希望在安装过程中提示用户选择卸载以前的版本(如果找到)。

我们在 Install4j 设置中寻找一些预构建选项以允许此操作,但尚未找到好的解决方案。基本上我们想要的工作流程如下:

  1. 显示第一个标准欢迎屏幕
  2. 用户选择我们的自定义选项并开始安装
  3. 在安装过程中:首先检查以前的版本是否存在(使用已知的应用程序 ID 或其他方法),如果是这样,则显示消息用户确认删除以前的版本
  4. 如果用户选择"is",则之前运行先前程序的卸载程序完成当前新程序的安装。

最终我有两个与此相关的问题:

  1. 我们完成所需工作流程的最佳方式是什么?
  2. 如果没有简单的方法,是否还有其他方法来设置我们的应用程序版本,以便我们可以有类似的过程来允许我们拥有单独的应用程序版本并以某种方式自动卸载以前的版本?

注意:我们的解决方案还需要与 Windows、Mac 和 Linux 交叉兼容

谢谢!

最佳答案

如果设置了“安装目录”属性并且取消选择“仅在找到相同的应用程序 ID”属性,则可以执行“执行以前的卸载程序”操作,该操作可以从任何目录卸载。

要找出具有不同应用程序 ID 的先前版本的安装位置,请使用

ApplicationRegistry.ApplicationInfo[] applicationInfos =
ApplicationRegistry.getApplicationInfoById("<application ID of previous version>");

if (applicationInfos.length > 0) {
context.setVariable("uninstallDir",
applicationInfos[0].getInstallationDirectory().getPath());
}

在“运行脚本”操作中。然后您可以将“执行以前的卸载程序”操作的“安装目录”属性设置为

${installer:uninstallDir}

及其“条件表达式”

context.getVariable("uninstallDir") != null

关于java - Install4j - 卸载具有不同应用程序 ID 的旧应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47943440/

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