¿Cuáles son las diferencias específicas entre el archivo .msi y el archivo setup.exe?

193

Busqué mucho, pero todas son respuestas adivinadas. Ayúdame a encontrar la respuesta exacta.

Babu
fuente
66
Aquí hay una respuesta más reciente
Stein Åsmul
Quería instalar un programa que venía con un instalador EXE y MSI. Primero instalé desde MSI, que solo instaló los archivos del programa (no requisitos previos o dependencias, y no creó los iconos del menú Inicio). Cuando inicié manualmente el programa, falló diciendo que faltaban ciertas DLL. La instalación desde el EXE también instaló otras cosas, y el producto funcionó bien. Yo diría que si un fabricante de software proporciona una opción tanto de EXE como de MSI para la instalación, use el EXE.
James L.

Respuestas:

232

Un MSI es una base de datos de Windows Installer. Windows Installer (un servicio instalado con Windows) lo utiliza para instalar software en su sistema (es decir, copiar archivos, establecer valores de registro, etc.).

Un setup.exe puede ser un programa de arranque o un instalador que no sea msi. Un instalador que no sea msi extraerá los recursos de instalación de sí mismo y gestionará su instalación directamente. Un programa de arranque contendrá un MSI en lugar de archivos individuales. En este caso, el setup.exe llamará a Windows Installer para instalar el MSI.

Algunas razones por las que puede querer usar un setup.exe :

  • Windows Installer solo permite la instalación de un MSI a la vez. Esto significa que es difícil que un MSI instale otros MSI (por ejemplo, dependencias como .NET Framework o C ++ runtime). Como un setup.exe no es un MSI, puede usarse para instalar varios MSI en secuencia.
  • Es posible que desee un control más preciso sobre cómo se gestiona la instalación. Un MSI tiene reglas muy específicas sobre cómo gestiona las instalaciones, incluida la instalación, actualización y desinstalación. Un setup.exe proporciona control completo sobre el proceso de configuración del software. Esto solo debe hacerse si realmente necesita el control adicional, ya que es mucho trabajo y puede ser complicado hacerlo bien.
Kevin Kibler
fuente
77
Iba a escribir esto - esto es probablemente lo que está buscando
Mongoose
1
En mi experiencia, construir un instalador MSI es mucho trabajo en comparación con construir un instalador basado en exe. Esto depende en gran medida de las herramientas que esté utilizando para construir el instalador en primer lugar. Desafortunadamente, todas las herramientas de instalación basadas en MSI que he visto han sido herramientas comerciales de GUI o herramientas complejas basadas en WiX. Ninguno de los dos se adapta particularmente bien a mis necesidades (es decir, crear automáticamente instaladores con un script).
Craftworkgames
Así que todavía me pregunto por qué existe MSI. ¿Qué problema estaba tratando de resolver cuando exe parece funcionar bien?
The Muffin Man
14

Los archivos .msi son archivos del instalador de Windows sin el tiempo de ejecución del instalador de Windows, setup.exe puede ser cualquier programa ejecutable (probablemente uno que instale cosas en su computadora)

thbusch
fuente
9

MSI es un archivo instalador que instala su programa en el sistema en ejecución.

Setup.exe es una aplicación (archivo ejecutable) que tiene uno o más archivos msi como uno de sus recursos. La ejecución de Setup.exe ejecutará a su vez msi (el instalador) que escribe su aplicación en el sistema.

Editar (como se sugiere en el comentario): los archivos ejecutables de instalación no necesariamente tienen un recurso MSI internamente

El Padrino
fuente
Los archivos ejecutables de instalación no necesariamente tienen un recurso MSI internamente.
jkmartindale
-9

MSI es básicamente un instalador de Microsoft que está integrado en Windows. Asocia componentes con características y contiene información de control de instalación. No es necesario que este archivo contenga archivos reales requeridos por el usuario, es decir, los programas de aplicación que el usuario espera. MSI puede contener otro setup.exe dentro del cual MSI envuelve, que en realidad contiene los archivos requeridos por el usuario.

Espero que esto te aclare la duda.

JPro
fuente
13
Esto es confuso y generalmente incorrecto, ya que los MSIarchivos generalmente NO envuelven setup.exearchivos, sino viceversa.
Flak DiNenno
¡"MSI puede contener otro setup.exe en su interior que MSI envuelve" es incorrecto! Más bien, lo contrario es cierto: un .exe tiene un .msi dentro.
UNO