Was sind die spezifischen Unterschiede zwischen der MSI- und der Setup.exe-Datei?

193

Ich habe viel gesucht, aber alle sind erratene Antworten. Hilf mir, die genaue Antwort zu finden.

Babu
quelle
6
Hier ist eine neuere Antwort
Stein Åsmul
Ich wollte ein Programm installieren, das sowohl mit einem EXE- als auch mit einem MSI-Installationsprogramm geliefert wurde. Ich habe zuerst von MSI installiert, das nur die Programmdateien installiert hat (keine Voraussetzungen oder Abhängigkeiten, und keine Startmenüsymbole erstellt). Beim manuellen Starten des Programms konnte nicht festgestellt werden, dass bestimmte DLLs fehlten. Bei der Installation über die EXE-Datei wurden auch andere Dinge installiert, und das Produkt lief einwandfrei. Ich würde sagen, wenn ein Softwarehersteller sowohl eine EXE- als auch eine MSI-Option für die Installation bereitstellt, verwenden Sie die EXE.
James L.

Antworten:

232

Ein MSI ist eine Windows Installer-Datenbank. Windows Installer (ein mit Windows installierter Dienst) verwendet dies, um Software auf Ihrem System zu installieren (z. B. Dateien kopieren, Registrierungswerte festlegen usw.).

Eine setup.exe kann entweder ein Bootstrapper oder ein Nicht-MSI-Installationsprogramm sein. Ein Nicht-MSI-Installationsprogramm extrahiert die Installationsressourcen aus sich selbst und verwaltet deren Installation direkt. Ein Bootstrapper enthält eine MSI anstelle einzelner Dateien. In diesem Fall ruft die Datei setup.exe Windows Installer auf, um die MSI zu installieren.

Einige Gründe, warum Sie eine setup.exe verwenden möchten :

  • Mit Windows Installer kann jeweils nur eine MSI installiert werden. Dies bedeutet, dass es schwierig ist, ein MSI andere MSIs installieren zu lassen (z. B. Abhängigkeiten wie das .NET Framework oder die C ++ - Laufzeit). Da eine setup.exe keine MSI ist, können mehrere MSIs nacheinander installiert werden.
  • Möglicherweise möchten Sie die Verwaltung der Installation genauer steuern. Ein MSI hat sehr spezifische Regeln für die Verwaltung der Installationen, einschließlich Installation, Aktualisierung und Deinstallation. Eine setup.exe gibt die vollständige Kontrolle über den Softwarekonfigurationsprozess. Dies sollte nur durchgeführt werden, wenn Sie wirklich die zusätzliche Kontrolle benötigen, da dies eine Menge Arbeit ist und es schwierig sein kann, es richtig zu machen.
Kevin Kibler
quelle
7
Ich wollte das tippen - das ist wahrscheinlich das, wonach er sucht
Mongoose
1
Nach meiner Erfahrung ist das Erstellen eines MSI-Installationsprogramms im Vergleich zum Erstellen eines exe-basierten Installationsprogramms viel Arbeit . Dies hängt stark von den Tools ab, mit denen Sie das Installationsprogramm überhaupt erstellen. Leider waren alle MSI-basierten Installer-Tools, die ich gesehen habe, entweder kommerzielle GUI-Tools oder komplexe WiX-basierte Tools. Beides passt nicht besonders gut zu meinen Anforderungen (dh das automatische Erstellen von Installationsprogrammen mit einem Skript).
Craftworkgames
Ich frage mich immer noch, warum es MSI gibt. Welches Problem versuchte es zu lösen, wenn exe gut zu funktionieren scheint?
The Muffin Man
14

MSI-Dateien sind Windows Installer-Dateien ohne die Windows Installer-Laufzeit. setup.exe kann ein beliebiges ausführbares Programm sein (wahrscheinlich eines, das Inhalte auf Ihrem Computer installiert).

thbusch
quelle
9

MSI ist eine Installationsdatei, die Ihr Programm auf dem ausführenden System installiert.

Setup.exe ist eine Anwendung (ausführbare Datei), deren Ressource eine oder mehrere MSI-Dateien ist. Wenn Sie Setup.exe ausführen, wird wiederum msi (das Installationsprogramm) ausgeführt, das Ihre Anwendung auf das System schreibt.

Bearbeiten (wie im Kommentar vorgeschlagen): Setup-ausführbare Dateien verfügen nicht unbedingt über eine interne MSI-Ressource

Der Pate
quelle
Setup-ausführbare Dateien verfügen nicht unbedingt intern über eine MSI-Ressource.
jkmartindale
-9

MSI ist im Grunde ein Installationsprogramm von Microsoft, das in Windows integriert ist. Es ordnet Komponenten Funktionen zu und enthält Informationen zur Installationssteuerung. Es ist nicht erforderlich, dass diese Datei tatsächlich vom Benutzer benötigte Dateien enthält, dh die vom Benutzer erwarteten Anwendungsprogramme. MSI kann eine andere setup.exe enthalten, die das MSI umschließt und die tatsächlich die vom Benutzer benötigten Dateien enthält.

Hoffe das klärt dich Zweifel.

JPro
quelle
13
Dies ist verwirrend und im Allgemeinen falsch - da MSIDateien normalerweise KEINEsetup.exe Dateien umschließen , sondern umgekehrt.
Flak DiNenno
"MSI kann eine andere setup.exe enthalten, die das MSI umschließt" ist falsch! Das Gegenteil ist der Fall: Eine .exe enthält eine .msi.
EIN