Windows Installer
# Windows Installer

Der Windows Installer (vormals Microsoft Installer) stellt eine Laufzeitumgebung für Installationsroutinen unter Microsoft-Windows-Betriebssystemen bereit. Er besteht aus einem Windows-Systemdienst, der Paketdateien im msi-Format (Microsoft Software Installation), sowie Dateien mit den Dateiendungen mst für Transform-Dateien und msp für Patches interpretieren, entpacken und ausführen kann.
Durch das Tabellenformat der Installationsdateien ist es möglich, diese Pakete mit verschiedenen Programmen zu bearbeiten oder anzupassen.
Ein weiterer Vorteil bei der Verwendung der Windows-Installer-Technologie ist die Reparaturfähigkeit. Der Windows-Installer-Dienst überwacht beim Starten eines durch ihn installierten Programmes, ob alle zugehörigen Komponenten vorhanden sind. Fehlt eine dieser Komponenten, versucht der Windows Installer, diese nachzuinstallieren. Dieser Prozess lässt sich auch auslösen, wenn die Setup-Routine erneut ausgeführt wird – der Installer bietet dem Benutzer dann eine Reparatur (sowie eine Deinstallation) an.

## MSI-Pakete

MSI ist die Abkürzung für MicroSoft Installer. Es gibt Hersteller, die Editoren für MSI-Dateien bereithalten, wie z. B. Flexera Software mit dem Produkt InstallShield. Weitere Produkte sind Advanced Installer von Caphyon, Wise Installer von Symantec, AKInstallerMSI von AKApplications und InstallAware von InstallAware Software Corporation. Auch die Entwicklungsumgebungen Visual Studio (ab Version 2002) von Microsoft erlauben im begrenzten Umfang die Erstellung von Windows-Installer-Paketen. Die Entwicklungsumgebung Visual InterDev konnte mit dem Microsoft Windows 2000 Developers Readiness Kit so aufgerüstet werden, dass bereits 1999 die Erstellung von MSI-Installationspaketen in der Entwicklungsumgebung möglich war.
Es gibt auch kostenlose Software wie Makemsi und WiX von Microsoft zur Erstellung solcher Installationspakete. Beide erstellen MSI-Pakete ausgehend von einer Beschreibung des Paketes in einer Textdatei. Makemsi benutzt dabei eine eigene Macro-Sprache, WiX eine XML-basierte Beschreibung. Ab Version 3.0 wird WiX im Visual Studio 2010 unterstützt. Es wird sowohl Intelli-Sense für XML-Dateien angeboten als auch die Möglichkeit, zu kompilieren und zu linken. Trotzdem sind tiefergehende Kenntnisse erforderlich, um Installationen mit WiX zu erstellen.

## Notwendigkeit und Einsatz

Eine Installationslösung, die die Konfiguration der installierten Software mit einem Assistenten vollständig vom Paket aus übernimmt, ist von allen bekannten, aktuellen Betriebssystemen nur in Windows notwendig. Dort existierte bis zum Erscheinen von Microsoft Office 2000 keine betriebssystemeigene Einrichtung zur Konfiguration von Software, so dass das ausgelieferte Softwarepaket sich auf dem Zielrechner erst in eine gebrauchsfertige Version „verwandelt“. Ab Windows Vista, das jeden Eingriff in Betriebssystemkonfigurationen meldet, wird der Installationsprozess durch die Benutzerkontensteuerung unterbrochen, wenn das Setup höhere Rechte benötigt. Unter vorherigen Systemen wurde die Installation in diesem Fall abgebrochen.
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. Es können keine Abhängigkeiten zu anderen Softwarepaketen ausgedrückt werden. Der Systemdienst wurde mit Microsoft Office 2000 eingeführt, dessen Setup den Dienst erstmals installierte und verwendete. Seit Windows 2000 ist die Technologie vollständig in die Microsoft-Betriebssysteme integriert.

### Verbreitung und Verwendung

Die betriebssystemgestützte, tabellengesteuerte Installation für Windows konnte sich bei den meisten (kleineren) Anbietern von Software noch nicht in einem akzeptablen Umfang durchsetzen. Während kleinere Anbieter dazu übergehen, kostenlose skriptgesteuerte Programme wie NSIS oder Inno Setup, beides vom Windows Installer unabhängige Programme, zu verwenden, benutzen größere Konzerne den Quasi-Industriestandard InstallShield, der neben der Windows-Installer-Unterstützung auch seine eigene Laufzeitumgebung mitbringt.

## Ausführung

Ausgeführt werden MSI-Dateien durch die Kommandozeile mittels msiexec /i setup-dateiname.msi oder den Doppelklick auf den Dateinamen. Die installierte Version und optionale Parameter des Windows Installers werden mit msiexec(»Start → Ausführen«) aufgerufen. Die dabei ausgeführte Datei "msiexec.exe" befindet sich im Windows-Ordner "System32" und bei 64-bit Systemen zusätzlich als 32-bit Version im Ordner "SysWOW64".

## Versionen

| Version | Ausgeliefert mit | Nutzung möglich mit |
| 1.0 | Office 2000 | - |
| 1.1 | Windows 2000 | Windows 95/98/NT 4.0 SP6 |
| 1.2 | Windows Me | - |
| 2.0 | Windows XP RTM/SP1, Windows 2000 SP3, Windows Server 2003 | Windows 95/98/Me/NT 4.0 SP6/2000 unter SP3 |
| 3.0 | Windows XP SP2 | Windows 2000 SP3/SP4, Windows XP RTM/SP1, Windows Server 2003 |
| 3.1 | Windows Server 2003 SP1, Windows XP Professional x64 Edition, Windows XP SP3 | Windows 2000 SP3/SP4, Windows XP RTM/SP1/SP2, Windows Server 2003 |
| 4.0 | Windows Vista, Windows Server 2008 | - |
| 4.5 | Außerplanmäßige Veröffentlichung | Windows Vista, Windows Server 2008, Windows XP SP2 und neuer, und Windows Server 2003 SP1 und neuer |
| 5.0 | Windows 7, Windows 8 und Windows 10, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2012 und Windows Server 2012 R2 | |
| 5.0 SP1 | Außerplanmäßige Veröffentlichung kommt später | Windows 7 64-bit, Windows Server 2008 64-bit R2, Windows Vista 64-bit SP2, Windows Server 2008 SP2, Windows Home Server, Windows XP 64-bit Edition, Windows XP Pro x64 SP2, Windows Server 2003 ia64 SP2, Windows Server x64 SP2, Windows XP Pro x86 SP3, Windows Server 2003 x86, Windows 2000 Pro x86 SP3 |