Windows Installer XML
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.
Windows Installer XML | |
---|---|
Basisdaten | |
Entwickler | .NET Foundation |
Aktuelle Version | 3.11.2 (Stable) (18. September 2019) |
Betriebssystem | Windows |
Programmiersprache | C++, C#[1] |
Kategorie | Softwaretechnik |
Lizenz | Microsoft Reciprocal License |
deutschsprachig | nein |
wixtoolset.org |
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]
Eine grafische Benutzeroberfläche existiert nur in Form eines Plug-ins für Visual Studio mit dem Namen Votive.
Programmstruktur
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
Weblinks
- WiX-Projektseite
- WiX-Projektseite auf GitHub
- Blog-Eintrag von Entwickler Rob Mensching zur Veröffentlichung
- Artikel von Andreas Kerl aus der dotnetpro Zeitschrift (Memento vom 28. März 2016 im Internet Archive) (PDF; 199 kB)
- Wax - Freie Visual-Studio Erweiterung, interaktive Version von "Heat"
- Blog-Eintrag von Rob Mensching zur Lizenz-Änderung
Einzelnachweise
- The wix Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
- http://robmensching.com/blog/posts/2012/8/14/outercurve-foundation-and-wix-toolset-together-at-last/
- https://www.dotnetfoundation.org/blog/2016/05/04/wix-toolset-welcome
- github.com: WiX Toolset
- WiX-Projektseite auf CodePlex (Memento vom 1. Dezember 2013 im Internet Archive)
- http://wixtoolset.org/documentation/manual/v3/overview/alltools.html
- WiX v3.10.2 released
- BugTraq: Executable installers are vulnerable^WEVIL (case 3): WiX Toolset's bootstrapper "burn.exe"