Acciones personalizadas de ejecución diferida
El propósito de una acción personalizada de ejecución diferida es retrasar la ejecución de un cambio en el sistema en el momento en que se ejecuta el script de instalación. Esto difiere de una acción personalizada normal, o una acción estándar, en la que el instalador ejecuta la acción inmediatamente después de encontrarla en una tabla de secuencia o en una llamada a MsiDoAction. Una acción personalizada de ejecución diferida permite al autor de un paquete especificar las operaciones del sistema en un punto determinado dentro de la ejecución del script de instalación.
El instalador no ejecuta una acción personalizada de ejecución diferida en el momento en que se procesa la secuencia de instalación. En su lugar, el instalador escribe la acción personalizada en el script de instalación. El único parámetro de modo que establece el instalador en este caso es MSIRUNMODE_SCHEDULED. Consulte MsiGetMode para obtener una descripción de los parámetros del modo de ejecución.
Se debe programar una acción personalizada de ejecución diferida en la tabla de secuencia de ejecución dentro de la sección que realiza la generación de scripts. Las acciones personalizadas de ejecución diferida deben aparecer después de InstallInitialize y antes de InstallFinalize en la secuencia de acciones.
Las acciones personalizadas que establecen propiedades, estados de características, estados de componente o directorios de destino, o que programan operaciones del sistema mediante la inserción de filas en tablas de secuencia, pueden, en muchos casos, usar la ejecución inmediata de forma segura. Sin embargo, las acciones personalizadas que cambian el sistema directamente o llaman a otro servicio del sistema, se deben aplazar al momento en que se ejecuta el script de instalación. Consulte Acciones personalizadas sincrónicas y asincrónicas para obtener más información sobre posibles conflictos entre sus acciones personalizadas y el subproceso de instalación principal.
Dado que el script de instalación se puede ejecutar fuera de la sesión de instalación en la que se escribió, es posible que la sesión ya no exista durante la ejecución del script de instalación. Esto significa que el identificador de sesión original y el conjunto de datos de propiedad durante la secuencia de instalación no están disponibles para una acción personalizada de ejecución diferida. Las acciones personalizadas diferidas que llaman a bibliotecas de vínculos dinámicos (DLL) pasan un identificador que solo se puede usar para obtener una cantidad de información muy limitada, como se describe en Obtención de información de contexto para acciones personalizadas de ejecución diferida.
Tenga en cuenta que las acciones personalizadas diferidas, incluidas las acciones personalizadas de reversión y las acciones personalizadas de confirmación, son los únicos tipos de acciones que se pueden ejecutar fuera del contexto de seguridad de los usuarios.
Temas relacionados