繁体   English   中英

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

[英]how to halt installanywhere installer process if intended target application already running

我们使用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

在动作属性中,单击“拨号”按钮,即可取消和退出选项。

希望这可以帮助..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM