Sprache:
Suchen
HomeSitemapDatenschutzImpressumAGB

Hilfe, ich brauche einen Installer - windows.developer 12/2016

Das WiX Toolset – Installer einfach erstellen

Hilfe, ich brauche einen Installer!

Zu Beginn eines Entwicklungsprozesses muss man sich um vieles kümmern: Architektur, Konzepte und Verantwortlichkeiten sind nur ein kleiner Teil des Ganzen. Dabei wird oft ein wesentlicher Bestandteil im DevOps Cycle vergessen: die Verteilung der Anwendung, wenn sie fertig ist. Anders formuliert: Wie installiert der Nutzer später die Software auf seinem System?

Wer komplexe Anwendungen entwickelt und sie dann auf bequeme Weise ausliefern möchte, stößt bei seiner Suche nach dem richtigen Hilfsmittel auf Windows Installer XML – kurz WiX Toolset. In der Regel folgt dann die Frage: Warum soll ich das WiX Toolset nutzen? Gibt es doch eine Vielzahl an Alternativen wie ClickOnce, InstallShield oder dotNetInstaller, um nur drei zu nennen. Was sind also die Vorteile des WiX Toolsets?
Der wohl größte Vorteil ist die enorme Flexibilität, die das Toolset bietet. Es ist nicht nur möglich, einfache Installationsroutinen zu erstellen, die ausschließlich Dateien an die richtige Stelle kopieren. Es lassen sich auch komplexe Prozesse abbilden und eigene Custom Actions integrieren. Das Ganze wird, wie der Name sagt, in einer XML-Syntax abgebildet, wodurch Versionsverwaltung und Mergen relativ einfach sind. Besonders komfortabel ist zudem die Integration in Visual Studio. Auf der offiziellen Homepage des Projekts [1] gibt es neben den Binaries auch einen Installer, um das WiX Toolset zu installieren. Nach einem Neustart von Visual Studio kann ohne weiteren Aufwand ein neues Set-up-Projekt angelegt werden. Erkauft wird diese Einfachheit durch das Fehlen diverser Komfortfunktionen. So ist im WiX Toolset beispielsweise keinerlei UI-Editor vorhanden, der Entwickler muss alles von Hand in XML implementieren. Dass dies aber kein echter Nachteil ist, wird im Folgenden gezeigt. Dazu widmen wir uns erst dem Grundaufbau eines Projekts, bevor wir uns besondere Kernfunktionalitäten näher ansehen wollen.

Aufbau des WiX-Projekts

Zentraler Punkt eines WiX-Projekts ist das Product-Element. Das Product kann als Einstiegspunkt verstanden werden, unter dem sich weitere Elemente vereinen. Ein Pflichtelement ist dabei das Package. Die dort eingetragenen Attribute sind später in den Eigenschaften der Installationsdatei einsehbar, beeinflussen aber auch deren Ausführung. Hier können beispielsweise Versionsnummern, Herstellerinformationen, aber auch die benötigten Rechte, um die Installation ausführen zu können, definiert werden.
Ein weiteres Kernelement ist das Feature. Damit lassen sich funktionale Unterscheidungen sauber trennen sowie später aus dem Installer herausnehmen, ohne große Anpassungen vornehmen zu müssen. Ein Feature-Element kann als „kleinste installierbare Einheit“ gesehen werden. Unter ihr werden einzelne Komponenten aufgeführt, die gemeinsam installiert werden. Über das Level-Attribut können Features von der Installation ausgeklammert werden. Dies kann beispielsweise für verschiedene Lizenzen oder aber für während der Installation vom Nutzer an- und abwählbare Features genutzt werden. In der Standardeinstellung werden alle Features mit Level 1 installiert, Features mit Level 0 sind deaktiviert. Dies kann über die InstallLevel Property, deren Default 1 ist, auch feingranularer gestaltet werden.
Über das Media-Element besteht die Möglichkeit, die Dateien der Installation auf mehrere Cabinets, und somit die Installation auf mehrere Datenträger zu verteilen. Da dies in Zeiten der Softwaredownloads selten nötig ist, empfiehlt es sich, alle Dateien innerhalb einer *.msi zu bündeln.
Die Ordnerstruktur der Anwendung wird über einfache Verschachtelung von Directory-Elementen festgelegt. Zur besseren Übertragbarkeit auf unterschiedliche Systeme werden bestimmte Werte vordefiniert. So verweist beispielsweise das Directory-Element mit der ID „WINDOWSVOLUME“ auf jedem System auf die Installationspartition des aktuellen Windows-Betriebssystems.
Um die eigentlichen Installationsinhalte zu strukturieren, werden Component- oder ComponentGroup-Elemente, die mehrere Component-Elemente zusammenfassen, benutzt. Diese werden über ihre ID jeweils mindestens einem Feature zugeordnet. Component-Elemente, die keinem Feature zugeordnet wurden, erzeugen Link Errors und verhindern so einen erfolgreichen Build des WiXProjekts. Wichtig ist an dieser Stelle, dass die angesprochenen Elemente nicht in der gleichen Datei liegen müssen. Es ist also möglich, die Anwendungsarchitektur auch im Installationsprojekt abzubilden und so den Dokumentationsaufwand zu minimieren.
Das Component-Element selbst kann beliebig viele Elemente verschiedener Typen beinhalten. Das am häufigsten benötigte Element ist das File-Element. Es dient zur Definition einer Datei, die während der Installationsroutine kopiert werden soll. In diesem Fall kann ein File auch als Key Path für die Komponente dienen. Der Windows Installer überprüft vor der Installation, ob der entsprechende Key Path bereits vorhanden ist und führt die Installation der Komponente nur durch, wenn dies nicht der Fall ist. Für andere Elemente müssen Key Paths entsprechend manuell vergeben werden. Abbildung 1 visualisiert den Aufbau eines WiX-Toolset-Projekts. ...

Hier einloggen, um den vollständigen Artikel zu lesen >>

Kontakt

AIT - Applied Information
Technologies GmbH & Co. KG

Leitzstrasse 45
70469 Stuttgart
GERMANY

Tel.: +49 (711) 490 664 30
Fax: +49 (711) 490 664 40
info@aitgmbh.de

Banner zur Karriereseite der AIT