stringtranslate.com

Instalador de Windows

Windows Installer ( msiexec.exeanteriormente conocido como Microsoft Installer , [3] nombre en código Darwin ) [4] [5] es un componente de software y una interfaz de programación de aplicaciones (API) de Microsoft Windows que se utiliza para la instalación , el mantenimiento y la eliminación de software. La información de instalación y, opcionalmente, los archivos en sí se empaquetan en paquetes de instalación , bases de datos relacionales vagamente estructuradas como almacenamientos estructurados COM y comúnmente conocidos como "archivos MSI", a partir de 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 fusió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 GUI y la generación automática de la secuencia de desinstalación . Windows Installer se posiciona como una alternativa a los marcos de instalación ejecutables independientes como versiones anteriores de InstallShield y NSIS .

Antes de la introducción de Microsoft Store (en aquel entonces llamada Windows Store), Microsoft alentaba a terceros a utilizar Windows Installer como base para los marcos de instalación, de modo que se sincronizaran correctamente con otros instaladores y mantuvieran la base de datos interna de productos instalados consistente. Funciones importantes como la reversión y el control de versiones dependen de una base de datos interna consistente para un funcionamiento confiable. Además, Windows Installer facilita el principio del mínimo privilegio al realizar instalaciones de software por proxy 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 está formado por componentes , agrupados en características . Windows Installer no maneja dependencias entre productos.

Productos

Un programa (o conjunto de programas) instalado y en funcionamiento es un producto . Un producto se identifica mediante un GUID único (la propiedad ProductCode) que proporciona una identidad autorizada en todo el mundo. El GUID, en combinación con el número de versión (propiedad ProductVersion), permite la gestión de la versión de los archivos y las claves de registro del producto.

Un paquete incluye la lógica del paquete y otros metadatos relacionados con la forma en que se ejecuta el paquete cuando se ejecuta. Por ejemplo, cambiar un archivo EXE en el producto puede requerir que se cambie el código de producto o la versión de producto para la administración de la versión. Sin embargo, simplemente cambiar o agregar una condición de lanzamiento (con el producto permaneciendo exactamente igual que la versión anterior) aún requeriría que se cambie el código de paquete para la administración de la versión del archivo MSI.

Características

Una característica es un grupo jerárquico de componentes. Una característica puede contener cualquier cantidad 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 colocar el archivo principal del programa en una característica y los archivos de ayuda del programa, el corrector ortográfico opcional y los módulos de diseño de fondo en características adicionales.

Componentes

Un componente es la unidad básica de un producto. Windows Installer trata cada componente como una unidad. El instalador no puede instalar solo una parte de un componente. [7] 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 se puede compartir entre varias características del mismo paquete o de múltiples paquetes, idealmente mediante el uso de módulos de combinación .

Rutas clave

Una ruta de clave es un archivo específico, una clave de registro o una fuente de datos ODBC que el autor del paquete especifica como crítica para un componente determinado. Debido a que un archivo es el tipo más común de ruta de clave, el término archivo de clave se utiliza comúnmente. Un componente puede contener como máximo una ruta de clave; si un componente no tiene una ruta de clave explícita, se toma la carpeta de destino del componente como la ruta de clave. Cuando se inicia un programa basado en MSI, Windows Installer verifica la existencia de rutas de clave. Si hay una discrepancia entre el estado actual del sistema y el valor especificado en el paquete MSI (por ejemplo, falta un archivo de clave), se vuelve a instalar la característica relacionada. Este proceso se conoce como autorreparación o autorreparación . No deben utilizar dos componentes la misma ruta de clave.

Desarrollo de paquetes de instalación

La creación de un paquete de instalación para una nueva aplicación no es una tarea sencilla. Es necesario especificar qué archivos se deben instalar, dónde y con qué claves de registro. Cualquier operación no estándar se puede realizar mediante acciones personalizadas, que normalmente se desarrollan en archivos DLL . Hay una serie de productos comerciales y gratuitos que ayudan a crear paquetes MSI, incluidos Visual Studio (de forma nativa hasta VS 2010, [8] con una extensión en versiones más nuevas de VS [9] ), InstallShield y WiX . En distintos grados, la interfaz de usuario y el comportamiento se pueden configurar 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 versiones anteriores, que a menudo implica generar decenas de miles de claves de registro y archivos temporales.

El ingeniero de instalación que desarrolla un nuevo instalador puede cambiar o configurar la interfaz de usuario (cuadros de diálogo) que se presenta al comienzo de la instalación. Hay 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 ninguna interfaz de usuario, lo que se denomina "instalación sin supervisión".

Validación ICE

Microsoft proporciona un conjunto de evaluadores de consistencia interna (ICE) que se pueden utilizar 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 que prueban el contenido de la base de datos MSI de destino en busca de advertencias y errores de validación. La validación ICE se puede realizar con las herramientas Orca y msival2 del SDK de la plataforma, o con las herramientas de validación que se incluyen con los diversos entornos de creación.

Por ejemplo, algunas de las reglas del ICE son:

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

Versiones

Véase también

Referencias

  1. ^ ab "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 de noviembre de 2003). "Dentro del formato de archivo MSI". Blogs de MSDN . Archivado desde el original el 15 de enero de 2009. Consultado el 15 de febrero de 2017 .
  4. ^ Mensching, Rob (11 de octubre de 2003). "La historia de Orca". Blogs de MSDN . Archivado desde el 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 los tipos de archivos de Windows Installer" . Consultado el 22 de abril de 2020 .
  7. ^ "Componentes de Windows Installer". Biblioteca MSDN . Microsoft Corporation . 30 de noviembre de 2012. Consultado el 8 de abril de 2013 .
  8. ^ Hodges, Buck (17 de marzo de 2011). "Los proyectos de configuración de Visual Studio (vdproj) no se incluirán en futuras versiones de VS". Blogs de MSDN . Consultado el 4 de febrero de 2020 .
  9. ^ "Extensión de proyectos del instalador de Visual Studio". Blog de Visual Studio . 2014-04-17 . Consultado el 2020-02-04 .
  10. ^ "Extensión de Windows Installer con un motor de configuración de código nativo más rápido". 9 de noviembre de 2010. Consultado el 22 de agosto de 2024 .
  11. ^ Evaluadores de Consistencia Interna – ICE
  12. ^ "Aplicación de actualizaciones de archivos completos a equipos cliente". Microsoft . 9 de marzo de 2004. Archivado desde el original el 10 de abril de 2004.
  13. ^ Novedades de Windows Installer 4.5
  14. ^ "Versiones publicadas de Windows Installer (Windows)". Msdn.microsoft.com. 2012-11-30 . Consultado el 2013-04-24 .

Enlaces externos