Поделиться через


Возвращаемые значения пользовательских действий 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 (один) в файле журнала, это означает, что действие вернуло msiDoActionStatusSuccess. Дополнительные сведения об этом переводе см. в разделе Ведение журнала возвращаемых значений действия.

Чтобы получить значение, отличное от успешного, из настраиваемого действия скрипта, необходимо использовать целевой объект функции для настраиваемого действия. Целевая функция указывается в столбце Target таблицы CustomAction.

В следующем примере скрипта показано, как возвращать успех или сбой из настраиваемого действия 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 для скрипта будет следующей:

Действие Тип Источник Назначение
MyCustomAction 6 MyCA.vbs MyVBScriptCA