加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 02:10:34 所属栏目:Windows 来源:网络整理
导读:我有一个bootstrapper应用程序,它安装了几个MSI包.但是,如果安装失败,Windows安装程序似乎不会返回任何错误代码.例如,如果我点击“取消”,则以下命令行测试不会打
我有一个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))

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读