Uso de componentes transitivos

Un uso típico de los componentes transitivos es preparar un producto para reinstalar durante una actualización del sistema. El autor del paquete de instalación especifica que los componentes que deben intercambiarse durante una actualización del sistema tienen el atributo transitivo. Cuando el usuario actualice posteriormente el sistema, se debe volver a instalar el producto. Tras esta reinstalación, el instalador quita los componentes anteriores e instala los componentes posteriores, sin tener que instalar todo el producto.

Para incluir dos componentes transitivos en el paquete de instalación

  1. Incluya ambos componentes transitivos en el paquete de instalación.

  2. Cree ambos componentes transitivos en la tabla Componente igual que los componentes normales. Cada componente transitivo debe tener su propio GUID único especificado en la columna ComponentId.

  3. Incluya el bit msidbComponentAttributesTransitive en la columna Atributos de la tabla Componente para cada componente transitivo. Si se establece este bit, el instalador vuelve a evaluar el valor de la instrucción en la columna Condición tras una reinstalación.

    Si el valor era anteriormente False y ha cambiado a True, el instalador instala el componente.

    Si el valor anteriormente era True y ha cambiado a False, el instalador quita el componente aunque el componente tenga otros productos como clientes.

    Nota:

    A menos que se establezca el bit transitivo, el componente permanece habilitado una vez instalado incluso si la instrucción condicional se evalúa como False en una instalación de mantenimiento posterior del producto. Las condiciones solo deben basarse en estados del equipo. No las use con condiciones basadas en estados de usuario o propiedades establecidas en la línea de comandos, ya que esto puede hacer que el instalador requiera una reinstalación del producto en cada uso de un usuario diferente.

     

  4. Escriba expresiones condicionales complementarias en los campos Condición de la tabla Control de forma que, cuando la condición del primer componente transitivo cambie a False, la condición del segundo componente transitivo cambie a True. Esto da como resultado la eliminación del primer componente e instalación del segundo componente tras la reinstalación de la aplicación.

Es necesario volver a instalar el producto para cambiar los componentes transitivos. Por lo tanto, los autores de paquetes deben proporcionar a los usuarios un método para reinstalar el producto y establecer los modos de la propiedad REINSTALLMODE. Básicamente hay tres maneras de desencadenar la reinstalación:

El bit solo debe usarse con condiciones basadas en estados del equipo. No las use con condiciones basadas en estados de usuario o propiedades establecidas en la línea de comandos, ya que esto puede hacer que el instalador requiera una reinstalación del producto en cada uso de un usuario diferente.

Nota:

A menos que el bit transitivo de la columna Atributos esté establecido para un componente, el componente permanece habilitado una vez instalado aunque la instrucción condicional de la columna Condición se evalúe como False en una instalación de mantenimiento posterior del producto.

En la mayoría de los casos, si una aplicación incluye componentes transitivos, Windows Installer requiere el origen de la aplicación para reparar o actualizar la aplicación. En estos casos, el CD-ROM de restauración del sistema enviado por un fabricante de equipos originales no funciona y es necesario proporcionar un origen de instalación real para la aplicación.