Reverter ações personalizadas
Quando o instalador processa o script de instalação, ele gera simultaneamente um script de reversão. Além do script de reversão, o instalador salva uma cópia de cada arquivo que exclui durante a instalação. Esses arquivos são mantidos em um diretório de sistema oculto. Quando a instalação estiver concluída, o script de reversão e os arquivos salvos serão excluídos. Se uma instalação não for bem-sucedida, o instalador tentará reverter as alterações feitas durante a instalação e restaurar o estado original do computador.
Embora as ações personalizadas que agendam operações do sistema inserindo linhas na tabela do banco de dados sejam revertidas por uma reversão da instalação, as ações personalizadas que alteram o sistema diretamente ou que emitem comandos para outros serviços do sistema nem sempre podem ser revertidas por uma reversão. Uma ação personalizada de reversão é uma ação que o instalador executa somente durante uma reversão de instalação e sua finalidade é reverter uma ação personalizada que fez alterações no sistema.
Uma ação personalizada de reversão é um tipo de ação personalizada de execução adiada , porque sua execução é adiada quando é invocada durante a sequência de instalação. Ele difere de uma ação personalizada adiada regular porque só é executado durante uma reversão. Uma ação personalizada de reversão deve sempre preceder a ação personalizada adiada que ela reverte na sequência de ações. Uma ação personalizada de reversão também deve lidar com o caso em que a ação personalizada adiada é interrompida no meio da execução. Por exemplo, se o usuário pressionar o botão Cancelar enquanto a ação personalizada estava sendo executada.
Observe que as ações personalizadas de reversão não podem ser executadas de forma assíncrona. Consulte Ações personalizadas síncronas e assíncronas.
O complemento de uma ação personalizada de reversão é uma ação personalizada de confirmação . O instalador executa uma ação personalizada de confirmação durante a sequência de instalação, copia a ação personalizada no script de reversão, mas não executa a ação durante a reversão.
Observe que uma ação personalizada de reversão pode não ser capaz de remover todas as alterações feitas por ações personalizadas de confirmação. Embora o instalador escreva ações personalizadas de reversão e confirmação no script de reversão, as ações personalizadas de confirmação só são executadas depois que o instalador processa com êxito o script de instalação. As ações personalizadas de confirmação são as primeiras ações a serem executadas no script de reversão. Se uma ação personalizada de confirmação falhar, o instalador iniciará a reversão, mas só poderá reverter as operações já gravadas no script de reversão. Isso significa que, dependendo da ação personalizada de confirmação, uma reversão pode não ser capaz de desfazer as alterações feitas pela ação. Você pode ignorar falhas em ações personalizadas de confirmação criando a ação personalizada para ignorar códigos de retorno.
Quando o instalador executa uma ação personalizada de reversão, o único parâmetro de modo que ele definirá é MSIRUNMODE_ROLLBACK. Consulte MsiGetMode para obter uma descrição dos parâmetros do modo de execução.
Uma ação personalizada de reversão pode ser especificada adicionando um sinalizador de opção ao campo Tipo da tabela CustomAction. Consulte Opções de Execução In-Script Ação Personalizada para obter o sinalizador de opção que designa uma ação personalizada de reversão.
As ações personalizadas de reversão e confirmação não são executadas quando a reversão está desativada. Se um autor de pacote exigir esses tipos de ações personalizadas para a instalação adequada, ele deverá usar a propriedadeRollbackDisabled em uma condição que impeça a instalação de continuar quando a reversão estiver desabilitada. Para obter informações sobre como desativar a reversão, consulte Instalação de reversão (Windows Installer).