在继续安装之前,应关闭“测试执行”

时间:2018-07-30 15:03:00

标签: powershell windows-installer testcomplete

我正在尝试使用“测试完成/测试执行”在测试计算机上安装第三方安装。我编写了一个Python脚本,该脚本调用PowerShell脚本,并使用msiexec安装位于文件夹中的所有.msi文件。

我用来调用msiexec的命令:Start-Process -FilePath msiexec.exe -ArgumentList ("/I“ $ fullPath "", "/qb", "ALLUSERS=TRUE", "/norestart") -Wait

除我的一个安装外,所有安装均可。一个无法正常工作的消息会打开并显示以下消息:

Popup Message

我正在TestExecute中执行这些脚本,所以由于我的其余测试将无法完成,因此无法将其关闭。

我要使用的安装程序不是我编写的,因此无法编辑任何内容。有人知道是什么导致.msiTestExecute之间发生冲突,还是知道我可以更深入地确定原因?

1 个答案:

答案 0 :(得分:1)

文件覆盖 :显示此对话框的设置正在尝试替换正在使用的文件,因此您将获得此Restart Manager对话框。对于某些创作不当的服务设置(安装程序应先自行关闭服务,然后再尝试替换文件)或安装了始终运行的应用程序的安装程序而言,这是典型的行为。 >


基本用户界面与无用户界面 :您正在使用 /qb 选项运行,这意味着基本用户界面-这意味着您会看到简单的进度和错误处理对话框。技术详细信息在这里:User Interface Levels

FilesInUse对话框 :我不喜欢的一个选项是set the MSIRESTARTMANAGERCONTROL property to Disable as described here(一直到底部)。这将禁用Windows中较新的重启管理器功能,而使用旧式的“ FilesInUse对话框”。我不确定在使用 /qb 运行安装程序时是否会显示此对话框-可能不会显示该对话框-使您的安装程序看起来完全无声(但不是)。

正确的静默安装 :我将改为使用 /qn 来启用无用户界面代替。 msiexec.exe 命令行包含一些“别名”。例如, /quiet 映射到 /qn /passive 映射到 /qb! 。看起来您正在混合并匹配较新的“ 标准安装程序命令行选项 ”和“实际”“ msiexec.exe命令行”选项 ”。前者的介绍要晚于后者:

使用什么选项无关紧要,但是我会一贯使用一个选项。因此,我将 /norestart 替换为 REBOOT=ReallySuppress

因此,您可以尝试类似(cmd.exe版)的操作:

msiexec.exe /I c:\MySetup.msi /qn /L*V "C:\msilog.log" ALLUSERS=1 REBOOT=ReallySuppress

快速参数说明:

/I c:\MySetup.msi = run installation sequence for specified MSI file
/QN = run completely silently
/L*V "C:\msilog.log"= verbose logging 
ALLUSERS=1 = Install per-macine (for all users)
REBOOT=ReallySuppress = do not reboot after install even if reboot is scheduled

WICLB.exe :以前是 Wise 中的一个工具,可以帮助构建 msiexec.exe 命令行。 I describe it here: WICLB.exe。当Wise退出市场时,它消失了,但是Wayback Engine提供了一个副本。


类似问题