Microsoft Windows Installer

ein DeFacto Standard.

Die Windows Installer-Technologie wurde von Microsoft entwickelt und ist ein sehr mächtiges Werkzeug zur Erstellung von robusten und stabilen Installationen. Sie besteht aus zwei Hauptkomponenten, dem Installer-Dienst beim Client (Msiexec.exe) und einer Paketdatei (MSI-Datei). Der Installer-Dienst führt die Installation einer Anwendung anhand der Informationen in der MSI-Datei aus. Die Leistungsfähigkeit des Windows Installers geht über das Installieren und Starten von Anwendungen weit hinaus.

MSI ist die Abkürzung für Microsoft Installer. MSI-Dateien sind relationale Datenbanken, deren Tabellen Binär/Text-Daten enthalten, die Steueranweisungen für die Installation darstellen. Diese Datenbanken werden dann, zusammen mit den vorgenommenen Einstellungen während der Installation, vom Betriebssystem verwaltet. Das Softwarepaket selbst kann in der Datenbank gespeichert sein, es ist aber ebenso möglich, nur Verweise auf die Dateien abzulegen. Seit Windows 2000 ist die Technologie vollständig in die Microsoft-Betriebssysteme integriert.

Es führt Diagnosen und Reparaturen an beschädigten Programmen durch

Ein Programm kann das Installationsprogramm auffordern, festzustellen, ob es fehlende oder beschädigte Dateien hat. Es kann dann den Installer-Dienst auffordern, dieses Programm ggf. zu reparieren, indem die fehlenden oder beschädigten Dateien erneut kopiert werden.

Der ursprüngliche Zustand des Computers wird beim Fehlschlagen der Installation wieder hergestellt

Windows Installer verfolgt alle Änderungen, die während des Programminstallationsvorgangs am System vorgenommen werden. Falls die Installation nicht erfolgreich ist, kann er das System auf seinen ursprünglichen Zustand zurücksetzen. Dieser Vorgang wird auch als "Rollback" bezeichnet.

Es unterstützt die Installation von Programmfunktionen auf Anforderung

Der Installer kann dazu angewiesen werden, zunächst nur die Minimalversion eines Programms zu installieren. Später können zusätzliche Komponenten automatisch installiert werden, wenn Sie erstmals eine Funktion verwenden, die zusätzliche Komponenten erfordert.

Er unterstützt die unbeaufsichtigte Programminstallation

Der Installer unterstützt das Erstellen eines Skripts für Programminstallationen entsprechend den Anweisungen des Administrators.

Es hilft, bestimmte Arten von Konflikten zwischen Programmen zu vermeiden

Es ist nicht ungewöhnlich, dass ein Programm, das installiert oder deinstalliert wird, Probleme mit einem anderen Programm verursacht, das sich bereits auf dem Computer befindet, oder sogar dazu führt, dass der Computer nicht mehr reagiert (abstürzt). Windows Installer erzwingt Installationsrichtlinien, die zum Verhindern von Konflikten beitragen, die verursacht werden, wenn ein Installationsvorgang Aktualisierungen an einer DLL-Datei (Dynamic-Link Library, DLL) vornimmt oder eine DLL-Datei löscht, die auch von einem anderen vorhandenen Programm verwendet wird.


Überblick über die wichtigsten Elemente der MSI-Technologie

Installation Package

Ein Installation Package beinhaltet alle Informationen, die der Windows Installer braucht, um eine Installation oder Deinstallation einer Anwendung durchzuführen. Hauptbestandteil eines Installation Package ist die MSI-Datei, die mit einer relationalen (Installations-)Datenbank realisiert wird. Hier sind, neben der Installationsprozedur und den Installationsdateien, viele andere Informationen abgelegt, wie zusätzlich benötigte CAB-Dateien, interne und externe Installationsquellen, Anweisungen für den Fall, dass eine Vorgängerversion dieser Anwendung bereits installiert ist oder Angaben zu Benutzergruppen, die diese Anwendung installieren dürfen.

Installation Mechanism

Eine Installationsprozedur besteht im Erfolgsfall aus zwei Phasen, Acquisition (Erfassung) und Execution (Ausführung). In der Erfassungsphase werden alle Informationen, die für die Installation benötigt werden, aus der Installationsdatenbank herausgelesen. Daraus wird ein Skript generiert, welches die Installationsprozedur Schritt für Schritt beschreibt. In der Ausführungsphase wird dieses Skript bearbeitet und die Anwendung installiert. Wenn die Installation nicht erfolgreich sein sollte, stellt der Windows Installer in der Rollback-Phase den Zustand des Computers, der vor der Installation herrschte, wieder her. Um diesen Schritt ausführen zu können, wird noch während der Installationsphase, parallel zur Abarbeitung des Installationsskriptes, ein Rollback-Skript generiert.

Installation-On-Demand

Traditionelle Installationstechnologien erfordern das Beenden einer Anwendung und das erneute Starten einer Setuproutine. Installation-On-Demand stellt den Versuch dar, diese Schritte zu erübrigen. Wenn ein Benutzer in einer laufenden Anwendung ein zusätzliches Feature installieren möchte, so kann dies ohne Neustart der Anwendung direkt geschehen. Dieses Konzept kommt auch zum Einsatz, wenn der Benutzer sich für eine neu verfügbare Anwendung (Advertisment) entscheidet und diese installieren will.

Components and Features

Wenn ein Windows Installer eine Anwendung installieren will, überführt er diese zunächst in das Konzept der Components und Features. Ein Feature ist ein Teil einer Anwendung, der nicht zwingend mit einer Anwendung mitinstalliert werden muss. Diese Entscheidung wird dem Benutzer freigestellt. Ein Beispiel wäre die Erweiterung eines Textverarbeitungsprogramms um eine zusätzliche Sprachunterstützung. Components dagegen sind feste Bestandteile einer Anwendung und werden grundsätzlich mitinstalliert. Für den Benutzer geschieht dies transparent. Beispiele für Components sind einzelne Dateien, Registrierungsschlüssel, COM-Objekte, Verknüpfungen, Bibliotheken usw.

Advertisement

Der Windows Installer bietet die Möglichkeit, einem Benutzer die Verfügbarkeit einer Anwendung anzukündigen, ohne dass diese schon installiert ist. Dafür wird lediglich das Interface der Anwendung benötigt. Damit kann dem Benutzer angezeigt werden, um welche Anwendung es sich handelt. Erst wenn der Benutzer diese wirklich benutzen will, werden die benötigten Components installiert.

Customization

Mit dem Windows Installer lassen sich maßgeschneiderte Installationen für unterschiedliche Benutzergruppen durchführen. Da alle Installationsinformationen in einer relationalen Datenbank gespeichert sind, können zur Laufzeit Veränderungen an den Datensätzen vorgenommen und dadurch die Installation einer Anwendung beeinflusst werden. Denkbar wäre es bspw., eine Anwendung, abhängig vom jeweiligen Benutzer, mit unterschiedlicher Sprachunterstützung zu installieren.


Transforming (.mst)

weitere Details » About Transforms | Microsoft Docs

Eine Transformation ist ein spezieller Typ einer .msi-Datenbankdatei und hat normalerweise die Erweiterung .mst. Die Umwandlungen gelten zum Installationszeitpunkt für das Setup einer Anwendung. Sie ändern im Wesentlichen die Standardwerte in einem MSI-Paket, um das Installationsverhalten bei dessen Auftreten zu steuern. Die geänderten Werte werden nicht in der MSI-Datei gespeichert.

Merge-Modul (.msm)

weitere Details » About Merge Modules | Microsoft Docs

Eine weitere Variante der MSI-Datei ist das Merge-Modul oder die MSM-Datei, eine Gruppe von Komponenten, die häufig in Anwendungs-Setups wiederverwendet werden. Beispielsweise können verschiedene Drittanbieteranwendungen Microsoft Visual C++ Redistributable (VC-Redist) verwenden. Anstatt ein Setup für diese gemeinsam genutzten Komponenten in jedem neuen MSI-Paket erneut zu erstellen, können Anwendungs-Packager die vom Hersteller der gemeinsam genutzten Komponenten bereitgestellten Mergemodule wiederverwenden. Mergemodule sind vereinfachte .msi-Datenbankdateien, die nur die Features und Komponenten enthalten. Häufig sind die eigentlichen Komponentendateien in die .msm-Datei selbst eingebettet. Die .msm-Dateien werden dann zum Paketerstellungszeitpunkt mit dem Windows Installer-Paket der Hauptanwendung zusammengeführt.