共用方式為


傳回 JScript 和 VBScript 自訂動作的值

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

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

 

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

若要從腳本自訂動作傳回以外的值,您必須使用自訂動作的函式目標。 目標函式是在 CustomAction 資料表的 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 內嵌在安裝套件的 Binary 資料表 中作為MyCA.vbs,腳本的 CustomAction Table 專案會是下列各項:

動作 類型 來源 目標
MyCustomAction 6 MyCA.vbs MyVBScriptCA