31 Stimmen

Ist es möglich/sinnvoll, ein Inno Setup-Installationsprogramm in ein MSI zu verpacken, um die Verteilung über AD zu erleichtern?

Unser Installationsprogramm wurde mit Inno Setup geschrieben und wir sind eigentlich ganz zufrieden damit. Einige Kunden fragen jedoch immer wieder nach einem MSI-Installationsprogramm, das sie einfacher über Active Directory verteilen können. Wir haben bereits einige Anstrengungen unternommen, damit der Installer wirklich gut mit automatisierten und unbeaufsichtigten Installationen zurechtkommt, indem wir Inno Setups /LOADINF -Mechanismus mit unseren eigenen Optionen.

Um die Kunden zufrieden zu stellen, die nach MSI fragen, hatte ich darüber nachgedacht, unser reguläres Installationsprogramm einfach in ein MSI zu packen, das möglicherweise mit WIX erstellt wurde. Die Frage ist: Kann ich die hohe Konfigurierbarkeit, die unser derzeitiges Installationsprogramm bietet, auf diese Weise beibehalten? Wie würde ich die Optionen des Inno-Setup-Installationsprogramms über das äußere MSI im Szenario der unbeaufsichtigten Masseninstallation zugänglich machen?

Beachten Sie, dass ich noch nicht wirklich dazu gekommen bin, mich selbst mit der MSI-Erstellung und WIX zu beschäftigen. Im Moment bin ich nur daran interessiert, ob Leute, die wissen, wovon sie reden, denken, dass dies ein machbarer/sinnvoller Ansatz ist, um unsere Energie überhaupt erst zu investieren...

[EDIT:] Ursprünglich dachte ich, ich könnte mit dem Ansatz der temporären Extraktion und Ausführung auskommen, d.h. das MSI würde einfach als Gefäß dienen, um das Inno-Installationsprogramm auf den Ziel-PC zu bringen und es dort in /VERYSILENT -Modus. Aber ich vermute, dass die Kunden, die nach dem MSI fragen, auch in der Lage sein wollen, die Installation von einem zentralen Ort aus zu deinstallieren oder sogar zu ändern, und ich vermute, dass das in diesem Szenario nicht möglich ist, oder?

P.S.: Wir haben hier auch ein altes Exemplar von WISE für MSI, aber diese Erfahrung war eigentlich der Grund, warum wir stattdessen mit Inno angefangen haben...

23voto

Roel Punkte 18798

Nein, es gibt keine Möglichkeit, dies zu tun und gleichzeitig die Funktionalität zu erhalten, nach der Ihre Kunden "implizit" fragen. Das einzige "Wrapping" in MSI, das Sie machen können, ist, es bei der Installation zu extrahieren und Ihr InnoSetup-Installationsprogramm von dem temporären Ort zu starten, an den Sie es extrahiert haben. MSI ist eine grundlegend andere Art zu arbeiten: InnoSetup (und NSIS und die meisten anderen Installationsprogramme) verfolgen einen code-zentrierten Ansatz: Sie "programmieren" die "Schritte" zur Installation Ihrer Daten. MSI ist eine Datenbank und verfolgt einen "datenzentrierten" Ansatz: Sie geben an, welche Dateien installiert werden sollen, und die MSI-Laufzeitumgebung erledigt den Rest. Auf diese Weise haben Sie die Versionierung und die genaue Kontrolle darüber, was wohin kommt.

Kurz gesagt, um Ihren Kunden das zu geben, was sie wollen (d. h. die einfache Bereitstellung, die MSI mit AD bietet), brauchen Sie "richtige" MSIs. Viel Glück dabei, es ist IMHO ein großes Problem. Aber es bringt gute Ergebnisse, wenn man MSI und WiX beherrscht.

15voto

Jacob Punkte 131

Ich habe dieses Problem selbst schon oft gehabt. Deshalb habe ich eine Standardmethode entwickelt, um dieses Problem anzugehen. Das Ergebnis ist ein Assistent, der Sie durch die einzelnen Schritte führt. Das Tool unterstützt die folgenden Punkte:

  1. Verpacken Sie die Exe in eine MSI.
  2. Unterstützung der Deinstallation.
  3. Nur ein Programm in "Programme hinzufügen oder entfernen" anzeigen.
  4. Ermöglicht die Übergabe von Befehlszeilenargumenten wie /SILENT an das eingebettete Setup, wenn Sie das MSI-Paket mit MSIEXEC.EXE ausführen.

Sie erhalten es unter http://www.exemsi.com (die Basisversion ist kostenlos)

Nutzen Sie mein Kontaktformular und lassen Sie mich wissen, was Sie denken :-)

3 Stimmen

Nun, trotz der Tatsache, dass diese Antwort ziemlich unverhohlene Werbung ist (die Pro-Version ist nicht kostenlos), muss ich Ihnen zugestehen, dass es ein nettes Tool ist, und das Unternehmen, für das ich arbeite, hat sich letztendlich für Ihre Pro-Version entschieden.

2voto

Roel Punkte 18798

Als Antwort auf Ihre Bearbeitung: Ja, was Sie beschreiben, wird Upgrades (außer Löschen/Neuinstallation) und Fernkonfiguration verhindern, da die MSI-Datenbank nichts über den Inhalt Ihres Installationsprogramms weiß.

Viele Installationspakete begannen jedoch auf diese Weise mit der MSI-Unterstützung: InstallShield zum Beispiel tat dies. Das ist der Hauptgrund, warum ich sie weggeschmissen habe, weil auf diese Weise erstellte Installer für MSI-Zwecke nutzlos sind. Ich weiß nicht, ob die neueren Versionen von InstallShield besser sind, das letzte Mal, als ich nachgesehen habe, war vor 5 Jahren.

2voto

Tom Punkte 6612

Es ist ziemlich einfach, ein Wrapper-Kit zu erstellen, das automatisch INNOSETUPper von MSI installiert. Für die Grundfunktionalität (Installation/Deinstallation) ist das ausreichend. Die meisten Setupper implementieren sowieso keine Reparatur.

  1. silent.inf-Skript für INNO-Setup erstellen (optional)

  2. install.bat erstellen, die Folgendes aufruft

    myinnosetup.exe /silent /NOCANCEL /norestart /Components="xxx"

    können Sie /verysilent verwenden
    Sie können Einstellungen aus der Datei silent.inf mit /LOADINF="silent.inf" laden

  3. MSI-Setup-Datei erstellen, die install.bat aufruft (ggf. mit Parametern)

  4. Liefern Sie alle 4 Dateien an Ihren Kunden und er kann Ihren Inno Setupper mit SMS oder ActiveDirectory einsetzen und alle sind zufrieden :)

2voto

Rob Hunter Punkte 2689

Ich würde behaupten, dass es möglich ist, alles, was Sie möchten, mit einem MSI-verpackten Inno-Setup zu tun, aber es ist bei weitem nicht trivial, und die Verwendung von WiX könnte diese spezielle Aufgabe noch schwieriger machen. Kurz gesagt, ich würde es nicht wirklich empfehlen.

Aber wenn Sie wirklich wollen...

MSI-Dateien sind einfach Datenbankdateien mit zusätzlichen Skriptanweisungen und betten oft die .cab-Datei ein, die das eigentlich zu installierende Material enthält.

Wenn Sie Wise verwenden, generieren Sie Standard-Skripte, denen Sie dann Windows Installer-Bedingungen hinzufügen und die Ereignisse genauer steuern können (Installieren, Reparieren, Ändern, Deinstallieren), so dass sie äquivalente Aktionen für Ihr Inno Setup-Installationsskript aufrufen, das in einem temporären Ordner installiert und aufbewahrt werden müsste.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X