共用方式為


傳回 JScript 和 VBScript 自定義動作的值

以 JScript 或 Visual Basic 撰寫的自定義動作,Scripting Edition (VBScript) 可以呼叫選擇性函式。 這些函式必須傳回下表所示的其中一個值。

傳回值 價值 描述
msiDoActionStatusNoAction 0 未執行動作。
msiDoActionStatusSuccess IDOK = 1 動作已順利完成。
msiDoActionStatusUserExit IDCANCEL = 2 使用者過早終止。
msiDoActionStatusFailure IDABORT = 3 無法復原的錯誤。 如果在剖析或執行 JScript 或 VBScript 期間發生錯誤,則傳回 。
msiDoActionStatusSuspend IDRETRY = 4 稍後要繼續的暫停序列。
msiDoActionStatusFinished IDIGNORE = 5 略過剩餘的動作。 不是錯誤。

 

請注意,Windows Installer 會將傳回值寫入記錄檔時,從所有動作轉譯傳回值。 例如,如果動作傳回值在記錄檔中顯示為1(一個),這表示動作傳回 msiDoActionStatusSuccess。 如需此轉譯的詳細資訊,請參閱 動作傳回值的記錄。

若要從文稿自定義動作傳回以外的值,您必須使用自定義動作的函式目標。 目標函式是在 CustomAction Table的 Target 資料行中指定。

下列腳本範例示範如何從 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 Table 專案如下:

行動 類型 目標
MyCustomAction 6 MyCA.vbs MyVBScriptCA