傳回 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 |