Es gibt eine Antwort, aber sie ist zwei Jahre alt und enthält keine Informationen dazu.
Situation: Ich habe einen Ordner mit einer ausführbaren Datei, einigen erforderlichen DLLs und einigen Bildern. Ich möchte all dies in eine einzige ausführbare Datei packen. Bei Ausführung wird die ausführbare Datei ausgeführt.
Ich habe diesen Superuser-Beitrag gefunden . Es scheint jedoch keine Lösung zu bieten.
Wenn Sie mit Python vertraut sind, gibt es eine Anwendung namens PyInstaller. Es erstellt ausführbare Dateien mit einer Datei aus dem Python-Quellcode.
Ich bin mir nicht sicher, wie es genau funktioniert, aber im Allgemeinen funktioniert es ungefähr so:
- Wickeln Sie das Verzeichnis mit der ausführbaren Datei in eine neue ausführbare Datei, z
app.exe
- Die neue ausführbare Datei führt ein Programm aus, das das versteckte Verzeichnis in einen temporären Ordner entpackt, einen Ordner mit dem Namen _MEIxxxxx, wobei x Zahlen sind. Zum Beispiel:
C:\Users\Me\AppData\Local\Temp\_MEI188722
- Führen Sie das Programm aus diesem Ordner aus.
Nach dem, was ich gelesen habe, verwenden sie dunkle Zauberei, um diese Arbeit zu machen. Ich frage mich, ob es ein Programm gibt, das diese Art von Dunkelmagie für Nicht-Python-Dateien ausführt.
Antworten:
Unter Windows kann eine Anwendung nicht auf native Weise aus einem Container (z. B. einer Zip-Datei) heraus gestartet werden. Aus diesem Grund wird PyInstaller in ein temporäres Verzeichnis entpackt, um die eigentliche Anwendung auszuführen.
Komprimierer wie ZIP und 7Zip bieten Ihnen die Möglichkeit, eine selbstextrahierende ausführbare Datei zu erstellen. Dies ist die reguläre komprimierte Datei plus den ausführbaren Code, der zum Dekomprimieren benötigt wird. In eine einzelne Datei gepackt. 7zip bietet die Möglichkeit, selbstextrahierende Archive für Installer zu erstellen. Vielleicht können Sie diese Option verwenden, um ein Standardprogramm anstelle eines Installationsprogramms auszuführen : http://7zip.bugaco.com/7zip/MANUAL/switches/sfx.htm
Sie können es so konfigurieren, dass nach dem Extrahieren eine beliebige Datei ausgeführt wird. Ich bin nicht sicher, ob Sie die Eingabeaufforderung entfernen können.
quelle
nsis http://en.wikipedia.org/wiki/Nullsoft_Scriptable_Install_System wäre die beste Option, die ich je gesehen habe. Ich habe mehrere Wrapper für Arbeits-Apps erstellt, damit Benutzer nicht in den Dateien herumstöbern, mit denen ihr PC repariert wird. Ich habe diese Woche gerade ein Virenscanner-Front-End erstellt, das das msert / mcafee stinger / mcafee rootkit mithilfe des corp-Proxys automatisch herunterlädt und dann laufen alle 3 Apps für die Technik.
Sie können das tun, was Sie mit einer Standardvorlage / einem Standardbeispiel verlangen. Setzen Sie im Hauptabschnitt das Ausgangsverzeichnis [$ OUTDIR% temp% _MEI188722] und fügen Sie eine Zeile [file yourapp.exe] für jede Datei im Originalverzeichnis hinzu, die das Programm benötigt . Verwenden Sie als nächstes eine Execwait-Zeile, um die betreffende Anwendung auszuführen. einen Befehl für 20 ms Ruhezustand und dann% temp% _MEI188722 löschen, damit die Dateien entfernt werden, nachdem sie nicht verwendet werden.
Wenn Sie das Installationsprogramm in den unbeaufsichtigten Modus versetzen, werden keine Standard-Installationsdialogfelder angezeigt, und Ihre App wird nach einem Moment geladen. Sie können auch benutzerdefinierte Dialogseiten erstellen, wenn der Benutzer zuerst Optionen auswählen muss, oder wenn die App eine Nachricht zurückgeben soll, wenn ein Fehler aufgetreten ist. Die Tutorials und die Community sind sehr aktiv und helfen uneingeschränkt. Wenn Sie sich erst einmal daran gewöhnt haben, wie nsis Dinge tut, sollte es einfach sein. http://hmne.sourceforge.net/ Dies ist ein praktisches Programm, mit dem Sie die Skriptdatei einfacher bearbeiten und die Exe erstellen können.
quelle