Ações personalizadas de reversão

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 excluído durante a instalação. Esses arquivos são mantidos em um diretório oculto do sistema. Depois que a instalação for concluída, o script de reversão e os arquivos salvos sã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 de banco de dados sejam revertidas por uma reversão de 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, pois sua execução é adiada quando invocada durante a sequência de instalação. É diferente de uma ação personalizada adiada regular, pois só é executada 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 estiver em execução.

Observe que as Ações Personalizadas de Reversão não podem ser executadas de forma assíncrona. Confira Ações personalizadas síncronas e assíncronas.

O complemento para 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 para o script de reversão, mas não executa a ação durante a reversão.

Observe que uma ação personalizada de reversão talvez não consiga remover todas as alterações feitas pelas ações personalizadas de confirmação. Embora o instalador grave 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 após o instalador processar com sucesso 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 ocorrer uma falha em uma ação personalizada de confirmação, o instalador iniciará a reversão, mas só poderá reverter essas 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 conseguir desfazer as alterações feitas pela ação. Você pode ignorar as falhas em ações personalizadas de confirmação criando a ação personalizada para ignorar os códigos de retorno.

Quando o instalador executa uma ação personalizada de reversão, o único parâmetro de modo que ele definirá será MSIRUNMODE_ROLLBACK. Confira MsiGetMode para ver uma descrição dos parâmetros do modo de execução.

Uma ação personalizada de reversão pode ser especificada com a adição de um sinalizador de opção ao campo Type da tabela CustomAction. Confira Opções de execução no script da ação personalizada para ver 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 é desabilitada. Se um autor de pacote exigir esses tipos de ações personalizadas para a instalação correta, ele deverá usar a propriedade RollbackDisabled em uma condição que impeça que a instalação continue quando a reversão for desabilitada. Para obter informações sobre como desabilitar a reversão, confira Instalação de reversão (Windows Installer).