Reglas de control de versiones de archivos

En el núcleo de cualquier instalador se encuentra la instalación real de archivos. Determinar si se debe instalar un archivo es un proceso complejo. En el nivel más alto, esta determinación depende de si el componente al que pertenece un archivo está marcado para la instalación. Una vez determinado que se debe copiar un archivo, el proceso es complicado si en la carpeta de destino existe otro archivo con el mismo nombre. En situaciones de este tipo, la determinación requiere un conjunto de reglas que implican las propiedades siguientes:

  • Versión
  • Date
  • Idioma

El instalador solo usa estas reglas al intentar instalar un archivo en una ubicación que ya contiene un archivo con el mismo nombre. En este caso, Windows Installer usa las reglas siguientes, sin modificar el resto de cosas, para determinar si se va a instalar.

La versión más alta gana: sin modificar el resto de cosas, el archivo con la versión más alta gana, incluso si el archivo del equipo tiene la versión más alta.

Los archivos con versiones ganan: se instalará un archivo con versiones antes que uno sin versiones.

Prioridad del idioma del producto: si el archivo que se instala tiene un idioma diferente al del archivo en el equipo, priorice el idioma que coincida con el producto que se está instalando. Los archivos independientes del idioma se tratan como otro idioma, por lo que el producto que se instala vuelve a tener prioridad.

Varios idiomas no coincidentes: después de no tener en cuenta los idiomas comunes entre el archivo que se está instalando y el archivo en el equipo, se priorizarán los idiomas restantes según lo que necesita el producto que se está instalando.

Conservar los idiomas de superconjunto: conserve el archivo que admite varios idiomas, independientemente de si ya está en el equipo o si se va a instalar.

Los archivos sin versiones son datos de usuario: si la fecha de modificación es posterior a la fecha de creación del archivo en el equipo, no instale el archivo porque se eliminarán las personalizaciones del usuario. Si las fechas de modificación y creación coinciden, instale el archivo. Si la fecha de creación es posterior a la fecha de modificación, el archivo se considera sin modificar, por lo que puede instalar el archivo.

La instalación de un archivo complementario no depende de su propia información de control de versiones de archivo, sino del control de versiones de su elemento primario complementario. En el caso de los archivos complementarios, la instalación solo se omite si el archivo principal tiene una versión superior. Tenga en cuenta que un archivo que es la ruta de acceso de la clave para su componente no debe ser un archivo complementario, ya que esto da como resultado la lógica de control de versiones del archivo de ruta de acceso de la clave que determina el archivo principal complementario.

Archivos sin versiones mediante archivos complementarios: un archivo sin versiones asociado a un archivo con versiones mediante el mecanismo complementario cumple las reglas del archivo con versiones. La única excepción es si el archivo con versiones en el equipo y el archivo con versiones que se va a instalar tienen la misma versión e idioma, pero falta el archivo complementario en el equipo. En este caso, se usa el archivo complementario que se va a instalar aunque se use el archivo con versiones en el equipo. Además, se instala un archivo sin versiones mediante un archivo complementario si la propiedad REINSTALLMODE incluye las opciones de las versiones anteriores de sobrescritura ("o" o "e") y la versión del archivo complementario es igual a un archivo que ya esté en la máquina.

Las reglas son globales: las reglas para determinar cuándo instalar un archivo residen en un solo lugar dentro del instalador y son globales, lo que significa que se aplican a todos los archivos por igual.

A fin de obtener ejemplos del formato usado para las versiones de archivo, vea el tipo de datos Version. Para obtener información más específica, vea Reemplazo de archivos existentes o Control de versiones de archivos predeterminados.