Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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 4.0.0
(5. April 2023)
Betriebssystem Windows
Programmier­sprache 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

Bearbeiten

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

Bearbeiten

Mit Versionen vor 3.10.2 erstellte ausführbare Installationsprogramme haben bekannte Sicherheitslücken.[7][8]

Literatur

Bearbeiten
  • 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
Bearbeiten

Einzelnachweise

Bearbeiten
  1. The wix Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
  2. http://robmensching.com/blog/posts/2012/8/14/outercurve-foundation-and-wix-toolset-together-at-last/
  3. https://www.dotnetfoundation.org/blog/2016/05/04/wix-toolset-welcome
  4. github.com: WiX Toolset
  5. WiX-Projektseite auf CodePlex (Memento vom 1. Dezember 2013 im Internet Archive)
  6. http://wixtoolset.org/documentation/manual/v3/overview/alltools.html
  7. WiX v3.10.2 released
  8. BugTraq: Executable installers are vulnerable^WEVIL (case 3): WiX Toolset's bootstrapper "burn.exe"