Bereitstellungsarchitektur und Übersicht für frameworkabhängige Apps

In diesem Artikel wird eine allgemeine Architektur der Windows App SDK Bereitstellung erläutert. Die folgenden Konzepte gelten in erster Linie für Windows App SDK frameworkabhängigen Apps. Eine frameworkabhängige App hängt davon ab, welche Windows App SDK Runtime auf dem Zielcomputer vorhanden ist.

Es gibt zwei Standard Optionen zum Verteilen einer frameworkabhängigen App:

App-Bereitstellungsmethode Requirements (Anforderungen)
Enthalten – Muss die Abhängigkeit vom Framework-Paket im Paketmanifest deklarieren.
– Die Bereitstellungs-API ist für verteilte Microsoft Store-Apps erforderlich und wird für verteilte Apps ohne Store empfohlen, um sicherzustellen, dass Laufzeitabhängigkeiten installiert sind.
Mit externem Speicherort gepackt oder nicht gepackt – Muss die Runtime entweder mithilfe des Installers oder durch direkte Installation der erforderlichen MSIX-Pakete verteilen.
- Zusätzliche Laufzeitanforderungen: Muss den Zugriff auf die Windows App SDK Runtime über die Bootstrap-API initialisieren.

Weitere Informationen zu diesen Anforderungen finden Sie in den folgenden Artikeln:

Schlüsselbegriffe

In den folgenden Abschnitten werden wichtige Begriffe für Windows App SDK Bereitstellung und zusätzliche Details zu einigen dieser Pakete definiert.

Begriff Definition
Windows App SDK Runtime Die MSIX-Pakete, die für eine App erforderlich sind, um die Windows App SDK zu verwenden. Diese Pakete umfassen: Framework, Main, Singleton und DDLM. Abhängig von den verwendeten Features und Ihrer App-Bereitstellungsmethode benötigen Sie einen bestimmten Satz dieser Pakete auf dem Zielcomputer.
Frameworkpaket Enthält Binärdateien, die zur Laufzeit von Apps (die meisten Windows App SDK Features) verwendet werden. Das Framework enthält eine Bootstrapperkomponente, mit der Apps automatisch die neueste Version des Windows App SDK installieren können, die in einem regelmäßigen Releaserhythmus aktualisiert wird.
Das Paket „main“ Paket, das Hintergrundaufgaben enthält, um dynamische Abhängigkeiten nachzuverfolgen, und ermöglicht automatische Updates des Framework-Pakets aus dem Microsoft Store.
Singleton-Paket Enthält Hintergrundaufgaben, Dienste, App-Erweiterungen und andere Komponenten, die nicht im Framework-Paket enthalten sind, z. B. Pushbenachrichtigungen. Dies ist in der Regel ein einzelner Prozess mit langer Ausführungsdauer, der zwischen Apps vermittelt wird.
DDLM-Paket (Dynamic Dependency Lifetime Manager) Verhindert, dass das Betriebssystem Wartungsupdates für die MSIX-Pakete ausführt, während eine mit externem Speicherort oder unverpackte App gepackte App verwendet wird.
Bootstrapper Eine lokale App-Binärdatei, die von gepackt mit externem Speicherort und unverpackten Apps verwendet wird, um die beste Windows App SDK Versionskonsens zu finden und nach Bedarf zu laden.
Bereitstellung Der Prozess der systemweiten Installation und Registrierung von Paketen (einschließlich Dateien und Registrierungsschlüsseln), um die Notwendigkeit einer wiederholten Installation durch die anderen Benutzer zu vermeiden. Dies kann entweder als Teil des Betriebssystems oder während der Installation einer App erfolgen.
Installationsprogramm Bezieht sich auf das .exe-Installationsprogramm, das die Pakete Framework, Main, Singleton und DDLM bereitstellt.
MSIX Moderne Installationstechnologie, die es Benutzern ermöglicht, eine App pro Benutzer sicher zu installieren, direkt aus dem Microsoft Store oder einer Website. Auf Enterprise- oder freigegebenen PCs können Apps für alle Benutzer über PowerShell und MDM installiert werden.

Frameworkpaket

Wenn Sie eine App erstellen, die die Windows App SDK verwendet, verweist Ihre App auf einen Satz von Windows App SDK Runtimekomponenten, die über ein Frameworkpaket an Endbenutzer verteilt werden. Das Frameworkpaket ermöglicht Apps den Zugriff auf Windows App SDK Komponenten über eine einzelne freigegebene Quelle auf dem Gerät des Benutzers, anstatt sie im App-Paket zu bündeln. Das Frameworkpaket enthält auch eigene Ressourcen, z. B. DLLs und API-Definitionen (COM und Windows-Runtime Registrierungen). Diese Ressourcen werden im Kontext Ihrer App ausgeführt, sodass sie die Funktionen und Berechtigungen Ihrer App erben und keine eigenen Funktionen oder Berechtigungen geltend machen. Weitere Informationen zu Frameworkpaketabhängigkeiten finden Sie unter MSIX-Frameworkpakete und dynamische Abhängigkeiten.

Das Windows App SDK-Frameworkpakets ist ein MSIX-Paket, das für Endbenutzer über den Microsoft Store bereitgestellt wird. Es kann einfach und schnell mit Wartungsversionen aktualisiert werden, die Sicherheits- und Zuverlässigkeitskorrekturen enthalten können. Alle frameworkabhängigen Apps, die den Windows App SDK verwenden, weisen eine Abhängigkeit von einer freigegebenen instance des Frameworkpakets auf, wie im folgenden Diagramm dargestellt.

Diagramm des Zugriffs von Apps auf das Windows App SDK Frameworkpaket

Wenn eine neue Version des Windows App SDK Frameworkpakets gewartet wird, werden alle frameworkabhängigen Apps auf die neue Version aktualisiert, ohne dass sie selbst eine Kopie verteilen müssen. Windows aktualisiert die neueste Version von Frameworks, sobald sie veröffentlicht werden, und Apps verweisen beim Neustart automatisch auf die neueste Frameworkpaketversion. Ältere Frameworkpaketversionen werden erst aus dem System entfernt, wenn sie nicht mehr ausgeführt werden oder aktiv von Apps auf dem System verwendet werden.

Diagramm, wie Apps Updates für das Windows App SDK Frameworkpaket erhalten

Da die App-Kompatibilität für Microsoft und für Apps, die vom Windows App SDK abhängig sind, wichtig ist, folgt das Windows App SDK Frameworkpaket den Regeln für semantische Versionierung 2.0.0. Dies bedeutet, dass nach der Veröffentlichung von Version 1.0 des Windows App SDK das Windows App SDK Frameworkpaket die Kompatibilität zwischen Neben- und Patchversionsänderungen garantiert, und breaking Changes treten nur zwischen Hauptversionsupdates auf.

Singleton-Paket

Das Singleton-Paket stellt sicher, dass ein einzelner Prozess mit langer Ausführungszeit Dienste verarbeiten kann, die in mehreren Apps verwendet werden, die unter verschiedenen Versionen der Windows App SDK ausgeführt werden können.

Die Windows App SDK Singleton ist erforderlich, um Pushbenachrichtigungen für unverpackte Apps und gepackte Win32-Anwendungen mit Windows-Versionen unter 20H1 zu aktivieren, die von der vorhandenen UWP PushNotificationTrigger- und ToastNotificationActionTrigger-Klasse nicht unterstützt werden können. Zukünftige Windows App SDK Features, die vom Framework-Paket nicht unterstützt werden können, werden dem Singleton-Paket hinzugefügt.

Zusätzliche Anforderungen für unverpackte Apps

Bootstrapper

Der Bootstrapper ist eine Bibliothek, die in Ihrem Paket mit externem Speicherort oder der unverpackten App enthalten sein muss. Sie stellt die Bootstrapper-API bereit (siehe Verwenden der Windows App SDK Runtime für Apps, die mit externem Speicherort oder entpackt sind), die es unverpackten Apps ermöglicht, die folgenden wichtigen Aufgaben auszuführen:

  • Initialisieren Sie den Dynamic Dependency Lifetime Manager (DDLM) für das Windows App SDK Frameworkpaket.
  • Suchen Sie das Windows App SDK Frameworkpaket, und laden Sie es in das Paketdiagramm der App.

Zum Ausführen dieser Aufgaben nutzt das Nuget-Paket Modulinitialisierer, um den Bootstrapper für Sie zu verkabeln. Legen <WindowsPackageType>None</WindowsPackageType> Sie einfach ihre Projektdatei fest. Wenn Sie in erweiterten Szenarien die Initialisierung steuern möchten, können Sie die Bootstrapper-API direkt im Startcode Ihrer App aufrufen (siehe Tutorial: Verwenden der Bootstrapper-API in einer App, die mit einem externen Speicherort verpackt oder entpackt ist, die den Windows App SDK verwendet), damit das System ordnungsgemäß für die unverpackte App initialisiert werden kann. Ihre App muss die Bootstrapper-API verwenden, bevor sie Windows App SDK Features wie WinUI, App Lifecycle, MRT Core und DWriteCore verwenden kann.

Die Bootstrapperbibliothek in der version Windows App SDK 1.0 umfasst Folgendes:

  • Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ und C#)
  • Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (C#-Wrapper)

Dynamic Dependency Lifetime Manager (DDLM)

Der Zweck des DDLM besteht darin, die Wartung des Windows App SDK Frameworkpakets zu verhindern, während es von einer unverpackten App verwendet wird. Es enthält einen Server, der vom Bootstrapper frühzeitig beim Start einer App initialisiert werden muss, um diese Funktionalität bereitzustellen.

Es gibt einen DDLM für jede Version und Architektur des Windows App SDK Frameworkpakets. Dies bedeutet, dass Sie auf einem x64 Computer möglicherweise sowohl eine x86 als auch eine x64 Version des DDLM verwenden, um Apps beider Architekturen zu unterstützen.

Zusätzliche Anforderungen