返回 JScript 和 VBScript 自定义作的值

用 JScript 或 Visual Basic 编写的自定义作(VBScript)可以调用可选函数。 这些函数必须返回下表中显示的值之一。

返回值 价值 描述
msiDoActionStatusNoAction 0 未执行作。
msiDoActionStatusSuccess IDOK = 1 作已成功完成。
msiDoActionStatusUserExit IDCANCEL = 2 用户过早终止。
msiDoActionStatusFailure IDABORT = 3 无法恢复的错误。 如果在分析或执行 JScript 或 VBScript 期间出错,则返回。
msiDoActionStatusSuspend IDRETRY = 4 要稍后恢复的挂起序列。
msiDoActionStatusFinished IDIGNORE = 5 跳过剩余作。 不是错误。

 

请注意,当 Windows Installer 将返回值写入日志文件时,会转换所有作中的返回值。 例如,如果作返回值在日志文件中显示为 1(1),则表示该作返回了 msiDoActionStatusSuccess。 有关此翻译的详细信息,请参阅 记录作返回值

若要从脚本自定义作返回非成功值,必须使用自定义作的函数目标。 目标函数在 CustomAction 表的目标列中指定。

以下脚本示例演示如何从 VBScript 自定义作返回成功或失败。

Function MyVBScriptCA()

    If Session.Property("CustomErrorStatus") <> "0" Then
        'return error
        MyVBScriptCA = 3
        Exit Function
    End If

    ' return success
    MyVBScriptCA = 1
    Exit Function

End Function

如果此 VBScript 作为 MyCA.vbs 嵌入到安装包 二进制表中,则脚本的 CustomAction 表 条目如下:

行动 类型 目标
MyCustomAction 6 MyCA.vbs MyVBScriptCA