如果预期的目标应用程序已在运行,如何停止 InstallAnywhere 安装程序进程



我们使用 InstallAnywhere 2012 部署一个 Java 应用程序。

部署的应用程序具有版本通知机制,该机制会弹出一个网站,并鼓励用户在"旧版本"可能仍在运行时下载并启动"新版本"。在此过程中有一个"请退出"对话框,但用户通常不会退出,并且安装"新版本"的操作通常只会覆盖未锁定的文件,这会产生无法正常工作的安装,直到用户进行全新重新安装。

如果当前正在运行"旧版本",我想修改实际安装程序以保释,要求用户先退出它。

IA 提供了一种"执行自定义代码"的方法,可以指向 jar 文件。因此,我创建了一个独立的可运行 jar 程序,如果一切都清楚,则以代码 0 退出,如果检测到"旧版本"正在运行,则以代码 1 退出,依赖于 tasklist.exe 的返回和一些字符串解析。但是,我似乎找不到根据程序输出更改安装程序过程的方法。

有没有人尝试过在IA平台上这样做,如果成功了,你是怎么做到的?

配置自定义代码操作。保留以下内容作为参考。

public class PreviousVersionCheck extends CustomActionBase{
    @Override
    public void install(InstallerProxy proxy) throws InstallException {
     boolean oldVersionRunning = isOldVersionRunning();//Logic to check if old version running.
     proxy.setVariable("$OLD_VERSION_RUNNING$",oldVersionRunning)
 }
}

在自定义代码操作之后,添加"显示消息对话框"。将操作的规则添加为
$OLD_VERSION_RUNNING$ 等于 true

在操作属性中,您有取消和退出选项,单击拨号按钮。

希望这有帮助..

最新更新