【问题标题】:Obtain Msiexec return code获取 Msiexec 返回码
【发布时间】:2013-09-19 20:11:36
【问题描述】:

我正在为软件部署创建安装包装程序,并且在使用 msiexec 启动 MSI 时遇到了一些获取错误代码的问题。 请以我的安装字符串为例:

Run(msiexec /i "' & @WorkingDir & '\install_flash_player_11_active_x.msi" TRANSFORMS="' & @WorkingDir & '\AdobeFlash_ActiveX.mst" /qn /norestart', @WorkingDir, @SW_HIDE)

在 AutoIT 中,如果安装发生错误,Run 应该将 @error 设置为非零。但是我注意到,即使安装失败,@error 也会设置为 0,因此我的消息来源认为这是成功的。我相信这些返回码是基于 Msiexec 本身成功启动的,而不是 Msiexec 启动的安装。反过来,我几乎不可能正确报告不成功的安装。

如果有人对此有任何潜在的解决方案,将不胜感激。

【问题讨论】:

    标签: windows-installer autoit software-distribution


    【解决方案1】:

    Run 中的 @error 值仅告诉您程序是否启动正确。然后程序在后台启动,脚本继续执行。

    如果您在安装 msi 时不需要进行任何处理,例如鼠标或键盘自动化,那么使用 RunWait 将返回程序的退出代码。

    或者,如果您需要使用 Run,则在进行后台处理后使用 ProcessWaitClose,它会在 @extended 中返回程序的退出代码。

    【讨论】:

    • 正是我所需要的。非常感谢。
    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    相关资源
    最近更新 更多