WiX unter Linux

Wenn man Windows-Software hat, die man in ein schönes Setup-Paket verpacken möchte, dann hat man heutzutage unterschiedliche Möglichkeiten. Die Auswahl kann man vorrangig anhand seines Geldbeutels und dem Willen, sich in neue Dinge einzuarbeiten, treffen. Auf der einen Seite gibt es das (annähernd marktbeherrschende) InstallShield, mit welchem man mit wenig Klicks zu einem Setup-Paket kommt und trotzdem noch "advanced" Dinge umsetzen kann - beliebige Erweiterungen des Setup-Prozesses, Web-basierte Setups, solche Dinge. Den Komfort bezahlt man natürlich auch durch saftige Preise. Möchte man das umgehen, stehen noch Open-Source-Alternativen wie Inno Setup im Raum, die in einem gewissen Maß mehr Einarbeitung erfordern und manche Dinge nicht unterstützen, aber stabil und weit verbreitet sind - und kostenlos :)

WiX - ein von Microsoft-Mitarbeitern gepflegtes Open-Source-Toolset - ist eine solche schöne Alternative zu InstallShield. Gegenüber dem bereits erwähnten Inno Setup hat es den Vorteil, dass es auf Windows Installer aufsetzt, also .msi-Dateien erzeugt, die ohne weitere Executable unter allen aktuellen Windows-Versionen installiert werden können - quasi das "Windows-Paketmanagement". Einer der Nachteile aber ist meiner Erfahrung nach, dass es erheblich schwerer ist, WiX-basierte Setup-Pakete unter Linux-Systemen zu bauen.

Aber: es geht! Wichtig ist:

  • Da WiX auf .NET basiert, ist natürlich Mono zur Ausführung erforderlich - allerdings nicht, wie man erst meinen könnte, Mono für Linux, sondern Mono für Windows, ausgeführt in Wine. Wine kapselt also Mono für Windows, welches wiederum die auszuführende WiX-Tool-Executable kapselt. Dieser Bohei ist notwendig, weil einige der WiX-Tools native MSI-APIs nutzen, die Mono logischerweise nicht mitbringt, Wine aber schon.

  • Je nach verwendeter Wine-Version kann es vorkommen, dass der WiX-Linker "light" mit einer Fehlermeldung von einer ihm unbekannten Windows-Codepage 1252 abbricht. Der Grund hierfür ist Bug #25182, ein erst in Wine-Version >= 1.3.8 gefixter Fehler in einer der MSI-Funktionen. Speziell die in vielen Linux-Distributionen über das Paketmanagement verfügbaren Versionen sind ja meist etwas älter, weshalb ich z.B. die aktuellste Head-Version von Wine ziehen und kompilieren musste.

  • Wenn man diese Dinge beachtet hat, kann man die WiX-Tools anschließend mit einer Kommandozeile nach dem Muster

    wine mono candle.exe (...)

    starten, und der Tag ist gerettet :o)

    Kommentare
    Hier wurden noch keine Kommentare verfasst.
    Neuen Kommentar schreiben
    Autor
    Du musst einen Autor angeben
    E-Mail-Adresse
    Du musst eine valide E-Mail-Adresse angeben (diese wird nur gespeichert und nicht veröffentlicht).
    Website
    Kommentar
    Ein leerer Kommentar kann nicht abgesendet werden
    [b]...[/b] für fetten, [i]...[/i] für kursiven, [u]...[/u] für unterstrichenen und [c]...[/c] für durchgestrichenen Text. [quote]...[/quote] erzeugt Zitate, [quote=Quelle]...[/quote] Zitate mit Quellenangabe. [url=http://www.beispiel.de]...[/url] und [url]http://www.beispiel.de[/url] erzeugen Links mit und ohne Ankertext. [code]...[/code] bewirkt eine spezielle Formatierung für Quellcode.