Windows Installer XML (kurz WiX Toolset) ist eine Programmsammlung zur Erstellung von Windows-Installer-Paketen (MSI-, MSP-, MSM- und MST-Dateien) mit Hilfe von XML-Dateien.
WiX wurde ursprünglich bei Microsoft entwickelt und ist das erste Programm von Microsoft, das als freie Software veröffentlicht wurde. Als es am 31. März 2004 bei SourceForge registriert wurde, sorgte das für großes Aufsehen. Im September 2012 wurde das WiX-Projekt von Microsoft an die Outercurve Foundation[2] und im Mai 2016 wiederum an die .NET Foundation[3] übertragen.
Der Quellcodes des Projektes wird seit März 2014 auf GitHub verwaltet,[4] zuvor fand dies bei SourceForge und CodePlex statt.[5]
WiX setzt sich aus verschiedenen Komponenten zusammen, deren Namen sich aus einem Wortspiel mit „wicks“ (englisch für Kerzendochte) herleiten:
Candle (englisch Kerze), der Compiler, wird benutzt, um die XML-Dokumente zu Objektdateien zu kompilieren, die Symbole und Referenzen zu Symbolen beinhalten.
Light (englisch Licht), der Linker, nimmt ein oder mehrere Objektdateien und verbindet die Referenzen in den Objektdateien mit den richtigen Symbolen aus anderen Objektdateien. Light ist ebenfalls dafür verantwortlich, die Binärdateien zu verwalten, sie richtig zu verarbeiten und schließlich daraus eine MSI- oder MSM-Datei zu generieren.
Lit (vgl. Literatur, engl. beleuchtet), das Bibliothekswerkzeug, ist ein optionales Werkzeug, mit dem man mehrere Objektdateien zu Bibliotheken kombinieren kann, die mit Light geparst werden können.
Burn (englisch Verbrennung), die Burn-Engine ist ein Bootstrapper zur Vorabinstallation erforderlicher Grundlagen wie fehlender Laufzeitumgebungen oder Bibliotheken, ebenso ermöglicht diese das Aneinanderreihen mehrerer Installationspakete (beispielsweise MSI- und MSP-Dateien oder klassische EXE-Installationen).
Dark (englisch Dunkelheit), der Decompiler, nimmt existierende MSI- und MSM-Dateien und erstellt XML-Dokumente, die das Paket repräsentieren.
Tallow (englisch Talg) und Heat (englisch Hitze) – Tallow ist ein Werkzeug, um XML-Script für WiX-Dateilisten zu erzeugen und in einen Verzeichnisbaum zu überführen. Es produziert ein WiX „Fragment“, welches mit anderen WiX-Quellcode-Dateien zur Compilezeit vereinigen kann. Ab WiX 3.0 übernimmt dies das sogenannte Heat-Werkzeug, welches noch besser funktionieren soll. Es existiert auch eine inoffizielle Version von Tallow, bekannt unter „Mallow“, welches über Synchronisationsfähigkeiten und verbesserte Komponenten-ID verfügt.
Weitere Komponenten im 3.x-Zweig sind die Werkzeuge Insignia, Melt, Torch, Smoke, Pyro, WixCop, WixUnit, Lux und Nit (siehe Kurzbeschreibungen[6]).
Sicherheit
Mit Versionen vor 3.10.2 erstellte ausführbare Installationsprogramme haben bekannte Sicherheitslücken.[7][8]
Literatur
Nick Ramirez: WiX 3.6: A Developer's Guide to Windows Installer XML, Packt Publishing, Birmingham 2012 (2. Aufl.), ISBN 978-1-78216-042-7