Articulo de referencia

Instalador de Windows

{{cite web |url=http://msdn.microsoft.com/en-us/library/aa371185.aspx |title=Released Versions of Windows Installer |work=[[Microsoft Developer Network]] |publisher=[[Microsoft]...

Windows Installer ( msiexec.exeanteriormente llamado Microsoft Installer , [ 3 ] nombre en clave Darwin ) [ 4 ] [ 5 ] es un componente de software y una interfaz de programación de aplicaciones (API) de Microsoft Windows , que se utiliza para instalar , mantener y eliminar software. La información de instalación, y opcionalmente los archivos relacionados, se empaquetan en paquetes de instalación , bases de datos relacionales flexibles estructuradas como COM Structured Storages y comúnmente conocidas como "archivos MSI", por sus extensiones de nombre de archivo predeterminadas . Los paquetes con las extensiones de archivo mstcontienen "Scripts de transformación" de Windows Installer, aquellos con las msmextensiones contienen "Módulos de combinación" y la extensión de archivo pcpse utiliza para "Propiedades de creación de parches". [ 6 ] Windows Installer contiene cambios significativos con respecto a su predecesor, Setup API. Las nuevas características incluyen un marco de interfaz gráfica de usuario (GUI) y la generación automática de la secuencia de desinstalación . Windows Installer se posiciona como una alternativa a los marcos de instaladores ejecutables independientes, como las versiones anteriores de InstallShield y Nullsoft Scriptable Install System (NSIS).

Antes de la introducción de Windows Installer, la API de configuración de Windows se podía usar en Windows 3.x y Windows 9x . La API de configuración permite copiar archivos, así como actualizar archivos INI o el Registro de Windows . Desde Windows 2000, se recomienda usar Windows Installer para instalar aplicaciones; la API de configuración todavía se usa para instalar controladores de dispositivos. [ 7 ]

Antes del lanzamiento de Microsoft Store (entonces llamada Windows Store), Microsoft animaba a terceros a usar Windows Installer como base para sus marcos de instalación, de modo que se sincronizaran correctamente con otros instaladores y mantuvieran la coherencia de la base de datos interna de productos instalados. Funcionalidades importantes como la reversión y el control de versiones dependen de una base de datos interna coherente para un funcionamiento fiable. Además, Windows Installer facilita el principio de mínimo privilegio al realizar instalaciones de software de forma remota para usuarios sin privilegios.

Estructura lógica de los paquetes

Un paquete describe la instalación de uno o más productos completos y se identifica universalmente mediante un GUID . Un producto se compone de componentes , agrupados en características . El Instalador de Windows no gestiona las dependencias entre productos.

Productos

Un programa (o conjunto de programas) instalado y en funcionamiento constituye un producto . Un producto se identifica mediante un GUID único (la propiedad ProductCode), que proporciona una identidad autorizada a nivel mundial. El GUID, junto con el número de versión (propiedad ProductVersion), permite gestionar las versiones de los archivos y las claves de registro del producto.

Un paquete incluye la lógica del paquete y otros metadatos relacionados con su ejecución. Por ejemplo, modificar un archivo EXE del producto puede requerir cambiar el ProductCode o la ProductVersion para la gestión de versiones. Sin embargo, simplemente cambiar o añadir una condición de inicio (manteniendo el producto idéntico a la versión anterior) requeriría modificar el PackageCode para la gestión de versiones del archivo MSI.

Características

Una característica es un grupo jerárquico de componentes. Puede contener cualquier número de componentes y otras subcaracterísticas. Los paquetes más pequeños pueden constar de una sola característica. Los instaladores más complejos pueden mostrar un cuadro de diálogo de "configuración personalizada", desde el cual el usuario puede seleccionar qué características instalar o eliminar.

El autor del paquete define las características del producto. Un procesador de textos , por ejemplo, podría ubicar el archivo principal del programa en una característica, y los archivos de ayuda, el corrector ortográfico opcional y los módulos de papelería en características adicionales.

Componentes

Un componente es la unidad básica de un producto. El Instalador de Windows trata cada componente como una unidad. El instalador no puede instalar solo una parte de un componente. [ 8 ] Los componentes pueden contener archivos de programa , carpetas , componentes COM , claves de registro y accesos directos . El usuario no interactúa directamente con los componentes.

Los componentes se identifican globalmente mediante GUID; por lo tanto, el mismo componente puede compartirse entre varias características del mismo paquete o de varios paquetes, idealmente mediante el uso de módulos de fusión .

Rutas clave

Una ruta de clave es un archivo específico, una clave de registro o un origen de datos ODBC que el autor del paquete especifica como crítico para un componente determinado. Dado que un archivo es el tipo más común de ruta de clave, se suele utilizar el término archivo de clave . Un componente puede contener como máximo una ruta de clave; si un componente no tiene una ruta de clave explícita, se considera que la carpeta de destino del componente es la ruta de clave. Cuando se ejecuta un programa basado en MSI, Windows Installer comprueba la existencia de rutas de clave. Si existe una discrepancia entre el estado actual del sistema y el valor especificado en el paquete MSI (por ejemplo, falta un archivo de clave), la característica relacionada se reinstala. Este proceso se conoce como autorreparación . Ningún componente debe usar la misma ruta de clave .

Desarrollo de paquetes de instalación

Crear un paquete de instalación para una nueva aplicación no es trivial. Es necesario especificar qué archivos deben instalarse, dónde y con qué claves de registro. Cualquier operación no estándar puede realizarse mediante acciones personalizadas, que normalmente se desarrollan en DLL . Existen varios productos comerciales y gratuitos que ayudan a crear paquetes MSI, incluidos Visual Studio (de forma nativa hasta VS 2010, con una extensión para versiones más recientes de VS), InstallShield (desarrollado por Revenera), [ 9 ] WiX , InnoSetup , InstallSimple y Advanced Installer. En mayor o menor medida, la interfaz de usuario y el comportamiento pueden configurarse para su uso en situaciones menos comunes, como la instalación desatendida. Una vez preparado, un paquete de instalación se "compila" leyendo las instrucciones y los archivos de la máquina local del desarrollador y creando el archivo .msi.

Windows Installer puede ser más lento que las tecnologías de instalación de código nativo, como InstallAware , [ 10 ] debido a la sobrecarga del registro de componentes y la compatibilidad con la reversión, que a menudo implica la generación de decenas de miles de claves de registro y archivos temporales.

La interfaz de usuario (cuadros de diálogo) que se muestra al inicio de la instalación puede ser modificada o configurada por el ingeniero de configuración que desarrolla un nuevo instalador. Existe un lenguaje limitado de botones, campos de texto y etiquetas que se pueden organizar en una secuencia de cuadros de diálogo. Un paquete de instalación debe poder ejecutarse sin interfaz de usuario, lo que se denomina "instalación desatendida".

validación ICE

Microsoft proporciona un conjunto de Evaluadores de Consistencia Interna (ICE) que pueden utilizarse para detectar posibles problemas con una base de datos MSI. [ 11 ] Las reglas ICE se combinan en archivos CUB, que son archivos MSI simplificados que contienen acciones personalizadas para probar el contenido de la base de datos MSI de destino en busca de advertencias y errores de validación. La validación ICE puede realizarse con las herramientas Orca y msival2 del SDK de la plataforma, o con las herramientas de validación incluidas en los distintos entornos de autoría.

Por ejemplo, algunas de las reglas de ICE son:

  • ICE09: Valida que cualquier componente destinado a la carpeta Sistema esté marcado como permanente.
  • ICE24: Valida que el código del producto, la versión del producto y el idioma del producto tengan los formatos adecuados.
  • ICE33: Valida que la tabla de Registro no se utilice para datos más apropiados para otra tabla (Clase, Extensión, Verbo, etc.).

Abordar las advertencias y los errores de validación de ICE es un paso importante en el proceso de lanzamiento.

Versiones

Véase también

Referencias

  1. 1 2 "Versiones publicadas de Windows Installer" . Microsoft Developer Network . Microsoft . Consultado el 3 de noviembre de 2012 .
  2. "Detalles de la extensión de archivo .MSI" . Filext.com . Consultado el 24 de abril de 2013 .
  3. Mensching, Rob (25-11-2003). "Dentro del formato de archivo MSI" . Blogs de MSDN . Archivado del original el 15-01-2009 . Recuperado el 15-02-2017 .
  4. Mensching, Rob (11 de octubre de 2003). "La historia de Orca" . Blogs de MSDN . Archivado del original el 23 de diciembre de 2008. Consultado el 15 de febrero de 2017 .
  5. Smith, Chris (1 de julio de 2005). "Windows Installer, .NET Framework, Bootstrapper y usted" . Blogs de MSDN . Consultado el 15 de febrero de 2017 .
  6. Stewart, Heath (27 de febrero de 2006). "Identificación de tipos de archivos del instalador de Windows" . Recuperado el 22 de abril de 2020 .
  7. drewbatgit. "Configuración de la API - Aplicaciones Win32" . learn.microsoft.com . Consultado el 27 de mayo de 2026 .
  8. "Componentes del instalador de Windows" . Biblioteca MSDN . Microsoft Corporation . 30/11/2012 . Consultado el 08/04/2013 .
  9. "InstallShield: Windows Installer y MSIX" . Revenera . Consultado el 18 de junio de 2026 .
  10. "Ampliando el instalador de Windows con un motor de configuración de código nativo más rápido" (Comunicado de prensa). 9 de noviembre de 2010. Consultado el 22 de agosto de 2024 .
  11. Evaluadores de consistencia interna – ICE
  12. "Aplicación de actualizaciones completas de archivos a equipos cliente" . Microsoft . 9 de marzo de 2004. Archivado del original el 10 de abril de 2004.
  13. Novedades de Windows Installer 4.5
  14. "Versiones publicadas de Windows Installer (Windows)" . Msdn.microsoft.com. 30/11/2012 . Consultado el 24/04/2013 .
  • Sitio web oficialEdita esto en Wikidata