Valores retornados de ações personalizadas de JScript e VBScript

Ações personalizadas escritas em JScript ou Visual Basic, o Scripting Edition (VBScript) pode chamar uma função opcional. Essas funções devem retornar um dos valores mostrados na tabela a seguir.

Valor retornado Valor Descrição
msiDoActionStatusNoAction 0 Ação não executada.
msiDoActionStatusSuccess IDOK = 1 Ação concluída com êxito.
msiDoActionStatusUserExit IDCANCEL = 2 Encerramento prematuro por usuário.
msiDoActionStatusFailure IDABORT = 3 Erro irrecuperável. Retornado se houver um erro durante a análise ou execução do JScript ou VBScript.
msiDoActionStatusSuspend IDRETRY = 4 Sequência suspensa a ser retomada posteriormente.
msiDoActionStatusFinished IDIGNORE = 5 Ignore as ações restantes. Não é um erro.

 

No entanto, observe que o Windows Installer converte os valores retornados de todas as ações ao gravar o valor retornado no arquivo de log. Por exemplo, se o valor retornado da ação aparecer como 1 (um) no arquivo de log, isso significa que a ação retornou msiDoActionStatusSuccess. Para obter mais informações sobre essa conversão, consulte Registro em log de valores retornados da ação.

Para retornar um valor diferente de êxito de uma ação personalizada de script, você deve usar um destino de função para a ação personalizada. A função de destino é especificada na coluna Target da Tabela CustomAction.

O exemplo de script a seguir mostra como retornar êxito ou falha de uma ação personalizada do 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

Se esse VBScript fosse inserido na tabela Binary do pacote de instalação como MyCA.vbs, a entrada da tabela CustomAction para o script seria a seguinte:

Ação Tipo Fonte Destino
MyCustomAction 6 MyCA.vbs MyVBScriptCA