Der folgende Artikel soll einen kurzen technischen Einstieg in die neue Version des Microsoft Installer liefern. In einem folgenden Artikel wird auf Werkzeuge und Methoden eingegangen, MSIX Pakete zu erzeugen oder bestehende Softwarepakete (MSI / Setup) in das neue Format zu migrieren.

Einführung

Microsoft hat auf dem Microsoft Developer Day im März 2018 die Zukunft der Softwareinstallation für Windows 10 basierte Geräte vorgestellt. MSIX ist eine vollständige „Containerisierungslösung“, welche alle großen Features von Universal Windows Plattform (UWP) übernimmt. Unterstützt werden Desktop, mobile und alle anderen Windows 10 – Geräte.

Technisch gesehen basiert MSIX auf dem AppX Paket Framework (ursprünglich lediglich für UWP Anwendungen verwendet) und wurde entwickelt, um klassische Windows Anwendungen besser zu unterstützen.

Die Bezeichnung MSIX leitet sich aus den beiden Technologien MSI und Appx ab.

Der neue Installationsdienst soll die besten Features der bisherigen Installationsmethoden in sich vereinen.

Features

Das neue Paket Format bietet einige neue Features von denen einige hier kurz erwähnt werden sollen.

Der MSIX Container

Eine typische Win32 Applikation hat direkten Zugriff auf den Kernel, die NTUSER, GDI etc.

Ein Weg, um das System abzusichern, ist nun die Verwendung eines isolierten Kernels wie die Bereitstellung über den Windows Defender Application Guard (WDAG). Hierin betriebene Anwendungen sind komplett vom Betriebssystem isoliert, folglich macht diese Verwendung auch nur für bestimmte Applikationen - die keinen Zugriff auf das System erfordern - Sinn.

Vor einiger Zeit hat Microsoft den Desktop Bridge Container eingeführt. Dieser bietet Zugriffe für die Appikation auf gesicherte Dateisystem und Registry Filter. So ist die Applikation in der Lage, erforderlichen Lese- und Schreibvorgänge im Datei und Registry System durchzuführen, sie kann aber z.B. keine Änderungen an der Registry einer anderen Applikation vornehmen.

Ein anderer Weg ist die Verwendung des restriktiverem UWP App Containers mit einem eigenen Resource and Capability Management. Hierbei werden sämtliche Zugriffe, die eine Anwendung erfordert, über Manifest Dateien definiert.

Der MSIX Container ist eine Kombination aus des Desktop Bridge und dem UWP App Container.

Eine Win32-Applikation, die über das MSIX Format bereitgestellt wird, lässt sich selbstverständlich auch weiterhin nur auf Windows Desktop Systemen installieren und ausführen. Konvertierte Apps werden nicht alleine durch den Wechsel auf das MSIX Bereitstellungsformat zur UWP und lassen sich demnach nicht auf Tablets oder Smartphones ausführen. Hierfür sind Anpassungen an der Applikationsarchitektur erforderlich.

Genau wie UWP Apps können konvertierte Anwendungen auf die UWP APIs zugreifen. Win32-Applikationen können jedoch lediglich die Desktop APIs nutzen, während vollständige UWP Applikationen auf unterschiedliche APIs(Mobile Device APIs, Xbox, etc.) zugreifen können.

MSIX – Paketaufbau

Die folgende Abbildung zeigt den minimalen Inhalt einer entpackten MSIX Datei.

Soviel zur "Theorie" über das neue Paketformat. Wie bereits oben angekündigt, werden sich die folgenden Artikel dann mit der "Praxis" beschäftigen und beschreiben, mit welchen Werkzeugen und Methoden MSIX-Pakete erzeugt werden oder wie bestehende Pakete in das Format migriert werden können.