Secuenciación de revisiones

A partir de Windows Installer 3.0, los autores y autoras pueden agregar información de secuenciación de revisiones a la base de datos del paquete de revisiones en la tabla MsiPatchSequence. El instalador puede usar esta información para determinar qué revisiones son aplicables a un paquete de instalación, para determinar la mejor secuencia de aplicación de revisiones y para instalar revisiones en un orden constante independiente del orden en que se proporcionan al sistema.

Windows Installer 2.0: no se admite. Las versiones de Windows Installer anteriores a Windows Installer 3.0 instalan las revisiones en el orden en que se proporcionan al sistema, independientemente de si contienen una tabla MsiPatchSequence.

Se requiere lo siguiente para usar la funcionalidad de secuenciación de revisiones.

  • Los paquetes de revisión (archivos .msp) deben tener una tabla MsiPatchSequence que contenga información de secuenciación. El instalador instala revisiones que no tienen una tabla MsiPatchSequence en el orden en que se proporcionan al sistema.
  • Las revisiones se instalan mediante Windows Installer 3.0 o posterior.

Windows Installer versión 3.0 tiene las siguientes funciones que las aplicaciones pueden usar para determinar la mejor secuencia de aplicación de revisiones.

  • La función MsiDeterminePatchSequence toma una lista de revisiones y determina en qué secuencia se pueden aplicar a un producto instalado. Esta función tiene en cuenta las revisiones o productos que ya se han instalado en el sistema.
  • La función MsiDetermineApplicablePatches toma una lista de revisiones y determina en qué secuencia se pueden aplicar a un producto instalado. Esta función no tiene en cuenta las revisiones ni los productos que ya se han instalado en el sistema.

Windows Installer versión 3.0 puede aplicar varias revisiones a un producto en una sola instalación de aplicación de revisiones. El grupo de revisiones puede contener revisiones que incluyen información de la secuencia de aplicación de revisiones (una tabla MsiPatchSequence) y revisiones que no. Windows Installer instala los paquetes de revisión sin esta tabla en el orden en que se proporcionan al sistema. El instalador tiene en cuenta los paquetes de revisión que carecen de una tabla MsiPatchSequence, pero que se han marcado como revisiones obsoletas o sustituidas por el método descrito en la sección siguiente.

Cuando Windows Installer versión 3.0 instala varias revisiones, sigue estos pasos para determinar la secuencia en la que se aplican revisiones individuales al producto:

  1. Las revisiones instaladas sin una tabla MsiPatchSequence se colocan en la secuencia siguiendo el orden en que se aplicaron al producto. La primera revisión que se aplicó se coloca primero en la secuencia.

  2. Las nuevas revisiones sin una tabla MsiPatchSequence se colocan en la secuencia. La instalación de aplicación de revisiones actual aplica estas revisiones. Se colocan en el orden en que se proporcionan al sistema y se sitúan después de todas las revisiones del paso 1.

  3. Las revisiones obsoletas se eliminan de la secuencia de revisiones.

    Nota

    Un paquete de revisión puede especificar en la propiedad Resumen de número de revisión una lista explícita de revisiones obsoletas que va a quitar la revisión. Esta lista está pensada para que la usen las versiones de Windows Installer anteriores a la versión 3.0. Windows Installer versión 3.0 quita las revisiones marcadas como obsoletas de la secuencia solo si las revisiones no tienen la tabla MsiPatchSequence.

     

  4. El instalador recorre la secuencia de aplicación de revisiones y determina qué revisiones son aplicables en la secuencia dada. Cuando se aplican varias revisiones a un producto, cada revisión en la secuencia también transforma la base de datos de instalación del producto (archivo .msi). Una revisión se aplica en una secuencia determinada solo si su transformación de base de datos es capaz de tomar el código de producto, la versión, el idioma y el código de actualización que resultan de aplicar las transformaciones de todos los paquetes de revisión anteriores a la base de datos del producto. El instalador elimina las revisiones inaplicables de la secuencia.

  5. El instalador comienza colocando las revisiones que tienen información de secuenciación en su tabla MsiPatchSequence. Las revisiones de actualización secundarias que tienen la tabla MsiPatchSequence se colocan en la secuencia después de las revisiones que se secuenciaron en los pasos anteriores y en el orden de sus versiones de producto más bajas a más altas después de actualizarse. A continuación, Windows Installer elimina las revisiones de actualización secundarias que se pueden aplicar en esta secuencia.

  6. Las revisiones de actualización pequeñas destinadas a actualizaciones secundarias que tienen una tabla MsiPatchSequence se asignan a la versión más alta de la revisión de actualización secundaria en la secuencia.

  7. Todas las revisiones de actualización pequeñas que permanecen sin asignar después de los pasos anteriores y que tienen la tabla MsiPatchSequence se colocan en la secuencia antes de la primera actualización secundaria que tiene la tabla MsiPatchSequence y después de la base de datos de instalación de .msi y las revisiones sin la tabla MsiPatchSequence. A continuación, Windows Installer elimina las revisiones de actualización pequeñas que no se pueden aplicar en esta secuencia.

  8. Windows Installer versión 3.0 elimina las revisiones sustituidas de la secuencia. Cuando una revisión sustituye las revisiones que se producen anteriormente en la secuencia de revisión, la revisión contiene todas las correcciones de las revisiones anteriores. Las revisiones anteriores ya no son necesarias. Windows Installer requiere la información de la tabla MsiPatchSequence para eliminar las revisiones sustituidas.

    Nota

    Las revisiones diseñadas para sustituir un conjunto anterior de revisiones deben crearse para sustituir las revisiones anteriores en todas las familias de revisiones. Las revisiones de actualizaciones pequeñas solo pueden sustituir actualizaciones pequeñas. Las actualizaciones secundarias pueden sustituir las actualizaciones pequeñas y otras actualizaciones secundarias.

     

  9. Las revisiones de actualizaciones pequeñas que llevan tablas MsiPatchSequence se secuencian dentro de las versiones del producto según la información de secuenciación en sus tablas MsiPatchSequence. Esto determina la secuencia final de aplicación de revisiones.

Una revisión que ya no se debería usar se puede eliminar de la secuencia de aplicación de revisiones. Para más información sobre cómo eliminar revisiones de la secuencia de aplicación de revisiones, consulte Eliminación de revisiones.

Para obtener un ejemplo de cómo se puede usar la tabla MsiPatchSequence para aplicar revisiones en el orden en que se crean, consulte el ejemplo de aplicación de revisiones múltiples.