Quelles sont les différences spécifiques entre le fichier .msi et setup.exe?

202

J'ai beaucoup cherché, mais toutes sont des réponses devinées. Aidez-moi à trouver la réponse exacte.

Babu
la source
6
Voici une réponse plus récente
Stein Åsmul
Je voulais installer un programme fourni avec un programme d'installation EXE et MSI. J'ai d'abord installé à partir de MSI, qui n'a installé que les fichiers du programme (pas de prérequis ni de dépendances, et n'a pas créé d'icônes du menu Démarrer). Lorsque j'ai lancé manuellement le programme, il a échoué en disant que certaines DLL étaient manquantes. L'installation à partir de EXE a également installé d'autres choses et le produit a fonctionné très bien. Je dirais que si un fabricant de logiciels fournit à la fois une option EXE et MSI pour l'installation, utilisez le fichier EXE.
James L.

Réponses:

245

Un MSI est une base de données Windows Installer. Windows Installer (un service installé avec Windows) l'utilise pour installer des logiciels sur votre système (c'est-à-dire copier des fichiers, définir des valeurs de registre, etc.).

Un setup.exe peut être un programme de démarrage ou un programme d'installation non-msi. Un programme d'installation non-msi extraira les ressources d'installation de lui-même et gérera directement leur installation. Un bootstrapper contiendra un MSI au lieu de fichiers individuels. Dans ce cas, setup.exe appellera Windows Installer pour installer le MSI.

Quelques raisons pour lesquelles vous pourriez vouloir utiliser un setup.exe :

  • Windows Installer n'autorise l'installation que d'un seul MSI à la fois. Cela signifie qu'il est difficile d'avoir un MSI pour installer d'autres MSI (par exemple des dépendances comme le framework .NET ou le runtime C ++). Puisqu'un setup.exe n'est pas un MSI, il peut être utilisé pour installer plusieurs MSI en séquence.
  • Vous souhaiterez peut-être un contrôle plus précis sur la façon dont l'installation est gérée. Un MSI a des règles très spécifiques sur la façon dont il gère les installations, y compris l'installation, la mise à niveau et la désinstallation. Un setup.exe donne un contrôle complet sur le processus de configuration du logiciel. Cela ne devrait être fait que si vous avez vraiment besoin d'un contrôle supplémentaire car c'est beaucoup de travail et il peut être difficile de faire les choses correctement.
Kevin Kibler
la source
7
J'allais taper ceci - c'est probablement ce qu'il cherche
Mongoose
1
D'après mon expérience, la construction d'un programme d'installation MSI représente beaucoup de travail par rapport à la construction d'un programme d'installation basé sur exe. Cela dépend grandement des outils que vous utilisez pour créer le programme d'installation en premier lieu. Malheureusement, tous les outils d'installation basés sur MSI que j'ai vus étaient des outils GUI commerciaux ou des outils complexes basés sur WiX. Aucun de ces éléments ne convient particulièrement bien à mes besoins (c'est-à-dire créer automatiquement des installateurs avec un script).
craftworkgames
Je me demande donc toujours pourquoi MSI existe. Quel problème essayait-il de résoudre quand exe semble fonctionner correctement?
The Muffin Man
14

Les fichiers .msi sont des fichiers d'installation de Windows sans le runtime du programme d'installation de Windows, setup.exe peut être n'importe quel programme exécutable (probablement celui qui installe des éléments sur votre ordinateur)

thbusch
la source
9

MSI est un fichier d'installation qui installe votre programme sur le système en cours d'exécution.

Setup.exe est une application (fichier exécutable) qui a le (s) fichier (s) msi comme l'une des ressources. L'exécution de Setup.exe exécutera à son tour msi (le programme d'installation) qui écrit votre application sur le système.

Modifier (comme suggéré dans le commentaire): les fichiers exécutables d'installation n'ont pas nécessairement de ressource MSI en interne

Le parrain
la source
Les fichiers exécutables d'installation n'ont pas nécessairement une ressource MSI en interne.
jkmartindale
-11

MSI est essentiellement un programme d'installation de Microsoft intégré à Windows. Il associe des composants à des fonctionnalités et contient des informations de contrôle d'installation. Il n'est pas nécessaire que ce fichier contienne les fichiers requis par l'utilisateur, c'est-à-dire les programmes d'application attendus par l'utilisateur. MSI peut contenir un autre setup.exe à l'intérieur duquel le MSI enveloppe, qui contient en fait les fichiers requis par l'utilisateur.

J'espère que cela efface vos doutes.

JPro
la source
14
Ceci est déroutant et généralement incorrect - en ce sens que les MSIfichiers NE sont généralement PAS encapsulés setup.exe, mais plutôt vice versa.
Flak DiNenno
«MSI peut contenir un autre setup.exe à l'intérieur duquel le MSI enveloppe» est incorrect! Au contraire, l'inverse est vrai: un .exe a un .msi à l'intérieur.
ONE