Ich versuche, eine komprimierte bereitstellbare Anwendung zu erstellen.
Momentan nehme ich eine Reihe von Dateien, die ich aus meiner IDE (von Visual Studio 2008 - WPF veröffentlichte Anwendung) veröffentlicht habe, und komprimiere sie in einem 7-Zip-SFX-Archiv.
Meine Benutzer haben gefragt, ob sie "Ein-Klick-Installation" von der 7-Zip-Exe können. Beim Erstellen des Archivs wird eine Parameterliste angezeigt. Gibt es eine Möglichkeit, eine Kombination von Parametern festzulegen, um die ausführbare Datei des Installationsprogramms aufzurufen, die extrahiert wird?
Leider scheint die 7-Zip-Dokumentation dieses Szenario nicht abzudecken. Ich habe mehrere kostenpflichtige Anwendungen gesehen, die etwas Ähnliches tun, aber ich versuche, das Tool, das ich schreibe, frei von lizenziertem Code zu halten, damit wir es intern verwenden können.
quelle
Antworten:
Sie müssen das LMZA SDK von 7-Zip herunterladen . Die Datei "installer.txt" enthält Dokumentation:
Sie müssen eine config.txt-Datei erstellen.
Beispielsweise:
quelle
Die vereinbarte Lösung ist richtig, hilft aber nicht, zu erklären, was Sie tatsächlich tun müssen !. Ich habe diese und viele andere Lösungen gelesen und konnte keine vollständigen und einfachen Anweisungen dazu finden.
Wenn Sie genauso verwirrt sind wie ich, lesen Sie bitte meinen Blog-Beitrag, in dem Sie Schritt für Schritt erfahren, wie Sie das erreichen, was Molly7244 veröffentlicht hat.
So erstellen Sie ein selbstextrahierendes Archiv, in dem Ihre setup.exe mit dem Schalter 7zip -sfx ausgeführt wird
Ich wurde darauf aufmerksam gemacht, dass Links nicht mehr funktionieren können. Hier sind die Schritte aus meinem Blog
Schritt 1 - Richten Sie Ihren Installationsordner ein
Um dies zu vereinfachen, erstellen Sie einen Ordner c: \ Install. Hier kopieren wir alle benötigten Dateien.
Schritt 2 - 7Zippen Sie Ihre Installationsprogramme
Schritt 3 - Holen Sie sich das 7z-Extra sfx-Erweiterungsmodul
Sie müssen das 7z-Extra herunterladen.
Schritt 4 - Richten Sie Ihre config.txt ein
Ich würde empfehlen, NotePad ++ zu verwenden, um diese Textdatei zu bearbeiten, da Sie in UTF-8 codieren müssen. Die folgenden Anweisungen verwenden Notepad ++.
Geben Sie so etwas ein:
Bearbeiten Sie dies, indem Sie [SOFTWARE v1.0.0.0] durch Ihren Produktnamen ersetzen. Hinweise zu den Parametern und Optionen für die Setup-Datei finden Sie hier
Kontrollpunkt
Sie sollten jetzt einen Ordner "c: \ Install" mit den folgenden 3 Dateien haben:
Schritt 5 - Erstellen Sie das Archiv
Diese Anweisungen habe ich im Internet gefunden, aber nirgends wurden die 4 oben genannten Schritte erklärt.
Geben Sie im Befehlsfenster Folgendes ein
Schauen Sie in c: \ Install nach und Sie werden sehen, dass Sie eine MyInstaller.exe haben
Führen Sie das Installationsprogramm aus
Doppelklicken Sie auf MyInstaller.exe und es wird mit Ihrer Nachricht aufgefordert. Klicken Sie auf OK und die setup.exe wird ausgeführt.
PS Hinweis zur Automatisierung
Jetzt, da Sie dies in Ihrem c: \ Install-Verzeichnis haben, würde ich eine "Install.bat" -Datei erstellen und das Kopierskript darin einfügen.
Jetzt können Sie die Datei Install.bat einfach jedes Mal bearbeiten und ausführen, wenn Sie eine neue Version Ihres Bereitstellungspakets erstellen müssen.
quelle
ExecuteParameters
Element in zu übergebenconfig.txt
? Zum Beispiel:C:\Install\MyInstaller.exe some_file.txt
würde ausführensetup.exe some_file.txt
.Sie sollten sich auch NSIS ansehen . Damit können Sie ein Installationsprogramm erstellen, das mit der gleichen Methode komprimiert wird, die 7-Zip verwendet ( LZMA ). Daher sollte es ungefähr dieselbe Größe haben und Sie haben die volle Kontrolle über den Installationsprozess.
quelle
Aufbauend auf der Antwort von jcrawfor74 finden Sie hier einige zusätzliche Informationen:
Anstelle von 7zS.sfx können Sie auch die Datei 7zS2.sfx verwenden . Dies ist eine viel kleinere Version (28 kB gegenüber 140 kB), die config.txt-Datei wird jedoch nicht unterstützt. Sie können es also einfach im Kopierbefehl weglassen. Wenn Sie nur winzige Konfigurationsskripte erstellen möchten, können Sie kleinere EXE-Dateien erstellen.
Das kleinere SFX-Modul stellt keine Fragen. Es extrahiert die Dateien in einen temporären Ordner als das andere Modul und findet dann ausführbare Kandidaten. Entsprechend dem Quellcode (der auch auf der Downloadseite verfügbar ist) werden in C \ Util \ SfxSetup \ SfxSetup.c Dateien basierend auf ihrem Namen und ihrer Erweiterung unterschiedlich gewichtet, und anschließend wird die Datei mit der höchsten Punktzahl ausgewählt.
Beide SFX-Module werden automatisch als Administrator ausgeführt , zumindest in Windows 10, und dies kann nicht konfiguriert werden. Während dieses Verhalten für systemweite Setups wünschenswert sein kann, ist dies möglicherweise nicht immer der Fall. Außerdem basiert diese Entscheidung nur auf den Dateiversionsdaten, da kein Manifest enthalten ist, das Windows explizit mitteilt, was zu tun ist. Die Windows-Kompatibilität überprüft die Datei und findet Zeichenfolgen wie "Setup", die zur Eingabeaufforderung für die Erhöhung führen.
Wenn Sie ein SFX-Modul benötigen, für das keine Administratorrechte erforderlich sind, können Sie das SFX-Modul aus dem Quellcode neu erstellen oder seine Dateiversionsinformationen mit einem Ressourceneditor wie diesem bearbeiten . Entfernen Sie einfach das Wort "Setup" aus dem Feld "FileDescription", kompilieren Sie im Falle des erwähnten Resource Hacker die Datei und speichern Sie die EXE-Datei. Sie können diesen Schritt auch direkt für die Datei 7zS.sfx oder 7zS2.sfx ausführen und an einem beliebigen Ort aufbewahren, damit Sie damit SFX-Pakete mit nicht erhöhten Rechten erstellen können. Auf diese Weise können Sie die Dateiversionsinformationen vollständig anpassen, um Ihren Produktnamen oder irgendetwas darin abzulegen, das die Nutzlast beschreibt.
quelle