Moin zusammen,
zurzeit stehe ich mal wieder vor Setup-Problemen. Folgender Hintergrund:
- Unsere Anwendung muss zwangsweise als MSI verpackt sein. Soweit kein Problem, das MSI wurde mit WiX erstellt und lässt sich damit unproblematisch in den MSBuild-Prozess einbinden.
- (Mitzuliefernde) Voraussetzungen sind Windows Installer, .NET Framework 2.0 und ein proprietäres Setup, an dem ich nichts ändern kann, das aber aus einer Menge Dateien besteht. Da man in einem MSI nicht noch ein MSI starten kann, habe ich also einen Bootstrapper gebaut, der für die einzelnen Komponenten die Voraussetzungen überprüft und die Installationen ausführt. Der Bootstrapper wird auch im Rahmen des regulären Build-Prozesses gebaut, also auch hier keine externen Abhängigkeiten.
- Das ganze soll jetzt, damit nicht lauter Dateien rumhängen, in ein SFX gepackt werden. Und jetzt kommt's. Weil unser Setup in das Corporate-Setup des Kunden eingebaut werden muss, ist die Anforderung sehr streng: Das Setup muss komplett Silent ausgeführt werden können (ohne jegliche Fenster). Sprich, das SFX muss Parameter zur Silent-Ausführung erlauben und es muss in der Lage sein, unser Setup zu starten, und das ebenfalls mit Kommandozeilenparametern (die dem SFX übergeben wurden). Bis hierhin kommt man mit dem einen oder anderen gängigen SFX schon ganz gut. Aber außerdem muss es sich in den Build-Prozess einbinden lassen, heißt: Das SFX muss von der Kommandozeile aus erstellt werden können und muss die Dateien selbst komprimieren können, idealerweise mit etwas besserem als dem herkömmlichen ZIP. Genaues Format ist egal, weil das SFX ja den Entpacker mitbringt. Die meisten SFX-Tools, die ich gesehen habe, benötigten eine ZIP-Datei zum Erstellen oder konnten gar nicht von der Kommandozeile aus ausgeführt werden. Kommandozeile an sich ist übrigens keine Pflicht, ein MSBuild-Task wäre auch akzeptabel.
Also, ich suche einen SFX-Builder, der mir genau das ermöglicht. Kennt jemand einen guten und hat damit auch gute Erfahrungen? Eine kostenlose oder OpenSource-Lösung würde ich vorziehen, jedoch wäre auch ein kommerzielles Programm akzeptabel.
Edit: Bereits probierte Lösungen sind u.a. Visual Studio Bootstrapper (unterstützt kein Silent), SpeedCommander SFX (ebenso, außerdem keine Kommandozeile), SFXBuilder, SFXCreator und noch einer mit so einem ähnlichen Namen (unterstützen alle entweder keine Kommandozeile oder benötigen eine fertige ZIP-Datei).