次の方法で共有


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 インストーラーは、戻り値をログ ファイルに書き込むときに、すべてのアクションから戻り値を変換します。 たとえば、アクションの戻り値がログ ファイルに 1 (1) と表示される場合は、アクションが msiDoActionStatusSuccess を返したことを意味します。 この変換の詳細については、「アクションの戻り値のログを参照してください。

スクリプト カスタム アクションから成功以外の値を返すには、カスタム アクションの関数ターゲットを使用する必要があります。 ターゲット関数は、CustomAction Tableの [ターゲット] 列で指定します。

次のスクリプト例は、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