如何防止InstallAnywhere在检测到多次安装时中止?

时间:2013-05-23 19:21:52

标签: installanywhere

InstallAnywhere在我的自动回归测试中定期退出,因为它认为另一个安装正在运行。

我可以以某种方式阻止此检查吗?

由于 -td

1 个答案:

答案 0 :(得分:0)

这很难回答,因为简单的回答是“是的,你可以阻止这种检查。”但是,这可能不是正确的答案。

简单的答案是转到Project > Info > Multiple Launch Settings,取消选中Prevent multiple launches of an installer at a given time.

然而,你的帖子引出了一个较大的两部分问题:“为什么在上次试运行中仍然存在IA的实例,我真的关心吗?”

如果你不关心并且在开始新的运行之前只希望它们死亡,那么请参考任何一个好的答案here(Linux),here(Linux)或{{3关于如何杀死正在运行的进程的问题(Windows)。在测试顶部添加一个步骤,用于搜寻并杀死任何延迟的InstallAnywhere实例。

如果你关注(现在我们来正确回答),那么检查在$ TMP(或%TEMP)中安装期间创建的日志%)目录看看有什么了。

此外,在项目中,您可以通过添加以下内容使安装程序更加详细:

-Dlax.debug.all=true -Dlax.debug.level=3

(或更详细的4或5)到Project > JVM Settings > Installer Settings (tab) > Optional Installer Arguments > Additional Arguments。您需要在发货前删除这些。您也可以在启动安装程序时将这些添加到命令行。

您也可以转到Project > JVM Settings > Log Settings,让安装程序将其进度打印到控制台。在这里,取消选中Include debug output (stderr and stdout)。然后在Send stderr to:Send stdout to:中输入 console 一词。您也可以设置特定的文件名,而不是控制台。您还需要在发货前撤消这些设置。

所有这些都应该为您提供大量信息来查找和解决根本问题:为什么您的InstallAnywhere执行没有终止。