微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

windows-installer – 如何在安装MSI时以编程方式检测成功或失败?

我有一个bootstrapper应用程序,它安装了几个MSI包.但是,如果安装失败,Windows安装程序似乎不会返回任何错误代码.例如,如果我点击“取消”,则以下命令行测试不会打印“失败”:

msiexec /i myinstaller.msi || echo Failed

鉴于缺少错误反馈,检测安装失败的最佳方法是什么?

如接受的答案所示,实际上返回了错误代码.出于某种原因,我的测试用例只能在从批处理文件执行时按预期工作,而不是直接在命令行输入.

解决方法

实际上,msiexec确实返回错误代码,两个成功代码为0(成功)和3010(成功,需要重新启动).也许cmd.exe在你的例子中做了一些不必要的魔法(比如在msiexec完成之前返回),但是当我通过VBScript的 WScript.Shell Run(bWaitOnReturn = True)执行时,我成功读取了msiexec错误代码.

尝试在test.vbs文件中抛出以下内容,然后使用cscript test.vbs执行它:

Set WshShell = WScript.CreateObject("WScript.Shell")
MsgBox(WshShell.Run("msiexec /i myinstaller.msi",true))

如果单击“取消”,它应弹出非零值.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐