Rückgabewerte von benutzerdefinierten JScript- und VBScript-Aktionen
In JScript oder Visual Basic, Scripting Edition (VBScript) geschriebene benutzerdefinierte Aktionen können eine optionale Funktion aufrufen. Diese Funktionen müssen einen der Werte zurückgeben, die in der folgenden Tabelle aufgeführt sind.
Rückgabewert | Wert | BESCHREIBUNG |
---|---|---|
msiDoActionStatusNoAction | 0 | Aktion wurde nicht ausgeführt. |
msiDoActionStatusSuccess | IDOK = 1 | Aktion wurde erfolgreich abgeschlossen. |
msiDoActionStatusUserExit | IDCANCEL = 2 | Vorzeitige Beendigung durch den Benutzer. |
msiDoActionStatusFailure | IDABORT = 3 | Nicht behebbarer Fehler. Wird zurückgegeben, wenn beim Parsen oder Ausführen von JScript oder VBScript ein Fehler auftritt. |
msiDoActionStatusSuspend | IDRETRY = 4 | Angehaltene Sequenz, die später fortgesetzt werden soll. |
msiDoActionStatusFinished | IDIGNORE = 5 | Verbleibende Aktionen überspringen. Kein Fehler. |
Beachten Sie, dass der Windows Installer die Rückgabewerte aller Aktionen übersetzt, wenn der Rückgabewert in die Protokolldatei geschrieben wird. Wenn der Rückgabewert der Aktion in der Protokolldatei beispielsweise als 1 angezeigt wird, bedeutet dies, dass die Aktion „msiDoActionStatusSuccess“ zurückgegeben hat. Weitere Informationen zu dieser Übersetzung finden Sie unter Protokollierung von Aktionsrückgabewerten.
Wenn Sie über eine benutzerdefinierte Skriptaktion einen anderen Wert für einen erfolgreichen Vorgang zurückgeben möchten, müssen Sie ein Funktionsziel für die benutzerdefinierte Aktion verwenden. Die Zielfunktion wird in der Spalte „Target“ der CustomAction-Tabelle angegeben.
Das folgende Skriptbeispiel veranschaulicht, wie eine benutzerdefinierte VBScript-Aktion einen Wert für einen erfolgreichen oder fehlgeschlagenen Vorgang zurückgeben kann.
Function MyVBScriptCA()
If Session.Property("CustomErrorStatus") <> "0" Then
'return error
MyVBScriptCA = 3
Exit Function
End If
' return success
MyVBScriptCA = 1
Exit Function
End Function
Wenn dieses VBScript in der Binary-Tabelle des Installationspakets als „MyCA.vbs“ eingebettet wäre, würde der Eintrag in der CustomAction-Tabelle für das Skript wie folgt aussehen:
Aktion | type | `Source` | Ziel |
---|---|---|---|
MyCustomAction | 6 | MyCA.vbs | MyVBScriptCA |