Install4j 如何停止安装同一安装程序的两个instance

Install4j 如何停止安装同一安装程序的两个instance,install4j,Install4j,我已经创建了安装程序“示例产品”。 在第一次安装尝试期间,安装成功,安装位置为“c://Program files//Sample Product” 在windows安装程序列表中,添加了一个名为“示例产品”的条目 在重新安装期间,我选择了不同的安装路径(D://示例产品)。 安装成功 然而,当我检查windows安装程序列表时,添加了一个mo“重复条目”作为“示例产品” 如何停止在windows已安装程序列表中创建两个实例 如果我在不同的位置重复安装,它会继续在windows程序列表中添加一个

我已经创建了安装程序“示例产品”。 在第一次安装尝试期间,安装成功,安装位置为“c://Program files//Sample Product”

在windows安装程序列表中,添加了一个名为“示例产品”的条目


在重新安装期间,我选择了不同的安装路径(D://示例产品)。 安装成功

然而,当我检查windows安装程序列表时,添加了一个mo“重复条目”作为“示例产品”

如何停止在windows已安装程序列表中创建两个实例

如果我在不同的位置重复安装,它会继续在windows程序列表中添加一个以上的实例


您可以在运行安装程序时卸载以前的安装

要查找以前的安装目录,请在安装程序的“启动”节点中添加“设置变量”操作,变量名为“previousInstallationDir”,脚本如下:

ApplicationRegistry.ApplicationInfo[] applicationInfos =
    ApplicationRegistry.getApplicationInfoById(context.getApplicationId());

if (applicationInfos.length > 1) {
    return applicationInfos[0].getInstallationDirectory().getPath();
} else {
    return "";
}
然后,将“卸载以前的安装”操作添加到“安装”屏幕,并将“安装目录”属性设置为

${installer:previousInstallationDir}

我遵循建议的步骤。我已经创建了安装程序“示例产品”。在第一次安装尝试期间,安装成功,安装位置为“c://Program files//Sample Product”。在windows安装的程序列表中,在重新安装期间添加了一个名为“示例产品”的条目,我选择了不同的安装路径(D://示例产品)。安装成功。但是,当我查看windows安装程序列表时,又添加了一个重复条目“示例产品”。您可以查看.install4j/installation.log文件来分析操作正在执行的操作。getting com.install4j.api.beans.UndefinedVariableException:installer:previousInstallationDirI修复了答案中的代码段,以便在未找到以前的安装时使用空字符串定义变量。