Reversión de acciones personalizadas

Cuando el instalador procesa el script de instalación, genera simultáneamente un script de reversión. Además del script de reversión, el instalador guarda una copia de cada archivo que elimina durante la instalación. Estos archivos se conservan en un directorio del sistema oculto. Una vez completada la instalación, se eliminan el script de reversión y los archivos guardados. Si una instalación no se realiza correctamente, el instalador intenta revertir los cambios realizados durante la instalación y restaurar el estado original del equipo.

Aunque las acciones personalizadas que programan operaciones del sistema insertando filas en la tabla de base de datos se invierten mediante una reversión de la instalación, las acciones personalizadas que cambian el sistema directamente o que emiten comandos a otros servicios del sistema, no siempre se pueden revertir mediante una reversión. Una acción personalizada de reversión es una acción que el instalador ejecuta solo durante una reversión de la instalación y su propósito es invertir una acción personalizada que ha realizado cambios en el sistema.

Una acción personalizada de reversión es un tipo de acción personalizada de ejecución diferida, porque su ejecución se aplaza cuando se invoca durante la secuencia de instalación. Difiere de una acción personalizada diferida normal en que solo se ejecuta durante una reversión. Una acción personalizada de reversión siempre debe preceder a la acción personalizada diferida que revierte en la secuencia de acciones. Una acción personalizada de reversión también debe controlar el caso en el que se interrumpe la acción personalizada diferida en medio de la ejecución. Por ejemplo, si el usuario presionase el botón Cancelar mientras se ejecuta la acción personalizada.

Tenga en cuenta que las acciones personalizadas de reversión no se pueden ejecutar de forma asincrónica. Consulte Acciones personalizadas sincrónicas y asincrónicas.

El complemento a una acción personalizada de reversión es una acción personalizada de confirmación. El instalador ejecuta una acción personalizada de confirmación durante la secuencia de instalación, copia la acción personalizada en el script de reversión, pero no ejecuta la acción durante la reversión.

Tenga en cuenta que es posible que una acción personalizada de reversión no pueda eliminar todos los cambios realizados por las acciones personalizadas de confirmación. Aunque el instalador escribe acciones personalizadas de reversión y confirmación en el script de reversión, las acciones personalizadas de confirmación solo se ejecutan después de que el instalador haya procesado correctamente el script de instalación. Las acciones personalizadas de confirmación son las primeras acciones que se ejecutarán en el script de reversión. Si se produce un error en una acción personalizada de confirmación, el instalador inicia la reversión, pero solo puede revertir esas operaciones ya escritas en el script de reversión. Esto significa que, en función de la acción personalizada de confirmación, es posible que una reversión no pueda deshacer los cambios realizados por la acción. Puede omitir los errores en las acciones personalizadas de confirmación mediante la creación de la acción personalizada para omitir los códigos de retorno.

Cuando el instalador ejecuta una acción personalizada de reversión, el único parámetro de modo que se establecerá es MSIRUNMODE_ROLLBACK. Consulte MsiGetMode para obtener una descripción de los parámetros del modo de ejecución.

Se puede especificar una acción personalizada de reversión agregando una marca de opción al campo Tipo de la tabla CustomAction. Consulte Opciones de ejecución de Custom Action In-Script para obtener la marca de opción que designa una acción personalizada de reversión.

Las acciones personalizadas de reversión y confirmación no se ejecutan cuando la reversión está deshabilitada. Si un autor del paquete requiere estos tipos de acciones personalizadas para una instalación adecuada, deben usar la propiedad RollbackDisabled en una condición que impida que la instalación continúe cuando se deshabilite la reversión. Para obtener información sobre cómo deshabilitar la reversión, consulte Instalación de reversión (Windows Installer) .