Freigeben über


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 frameworkabhängige Windows App SDK-Apps. Eine frameworkabhängige App hängt von der Windows App SDK-Laufzeit ab, die auf dem Zielcomputer vorhanden ist.

Es gibt zwei Hauptoptionen zum Verteilen einer frameworkabhängigen App:

App-Bereitstellungsmethode Anforderungen
Enthalten - Muss abhängigkeit vom Framework-Paket im Paketmanifest deklarieren.
– Die Bereitstellungs-API ist für verteilte Microsoft Store-Apps erforderlich und wird für nicht store verteilte Apps empfohlen, um sicherzustellen, dass Laufzeitabhängigkeiten installiert werden.
Mit externem Speicherort gepackt oder nicht gepackt – Muss die Laufzeit entweder mithilfe des Installers oder durch direkte Installation der erforderlichen MSIX-Pakete verteilen.
- Zusätzliche Laufzeitanforderungen: Muss den Zugriff auf die Windows App SDK-Laufzeit ü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 die Bereitstellung des Windows App SDK und weitere Details zu einigen dieser Pakete definiert.

Begriff Definition
Windows App SDK-Runtime Die MSIX-Pakete, die von einer App benötigt werden, um das Windows App SDK zu verwenden. Zu diesen Paketen gehören Framework, Main, Singleton und DDLM. Abhängig von den verwendeten Features und der App-Bereitstellungsmethode benötigen Sie einen bestimmten Satz dieser Pakete auf dem Zielcomputer.
Framework-Paket Enthält Binärdateien, die zur Laufzeit von Apps verwendet werden (die meisten Windows App SDK-Features). Das Framework enthält eine Bootstrapper-Komponente, mit der Apps die neueste Version des Windows App SDK automatisch installieren können, die in regelmäßigen Veröffentlichungsrhythmus aktualisiert wird.
Hauptpaket Paket, das Hintergrundaufgaben enthält, um dynamische Abhängigkeiten nachzuverfolgen und automatische Updates für das Framework-Paket aus dem Microsoft Store zu ermöglichen.
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 langer Prozess, der zwischen Apps vermittelt wird.
Dynamic Dependency Lifetime Manager (DDLM)-Paket Verhindert, dass das Betriebssystem Wartungsupdates für die MSIX-Pakete ausführt, während ein Paket mit externem Speicherort oder entpackte App verwendet wird.
Bootstrapper Eine app-lokale Binärdatei, die von paketierten externen Speicherorten und entpackten Apps verwendet wird, um die beste Übereinstimmung mit der windows App SDK-Version nach Bedarf zu finden und zu laden.
Bereitstellung Der Prozess der Installation und Registrierung von Paketen (einschließlich Dateien und Registrierungsschlüsseln) systemweit, um die Notwendigkeit einer wiederholten Installation durch die anderen Benutzer zu beseitigen. Dies kann entweder als Teil des Betriebssystems oder während der Installation einer App erfolgen.
Installationsprogramm Bezieht sich auf das .exe Installer, das die Framework-, Main-, Singleton- und DDLM-Pakete bereitstellt.
MSIX Moderne Installationstechnologie, mit der Benutzer eine App pro Benutzer sicher installieren können, direkt aus dem Microsoft Store oder einer Website. Auf Unternehmens- oder gemeinsam genutzten PCs können Apps für alle Benutzer über PowerShell und MDM installiert werden.

Framework-Paket

Wenn Sie eine App erstellen, die das Windows App SDK verwendet, verweist Ihre App auf eine Reihe von Windows App SDK-Laufzeitkomponenten, die über ein Frameworkpaket an Endbenutzer verteilt werden. Das Frameworkpaket ermöglicht Apps den Zugriff auf Komponenten des Windows App SDK über eine einzige freigegebene Quelle auf dem Gerät des Benutzers, anstatt sie in das App-Paket zu bündeln. Das Framework-Paket 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-Frameworkpaket ist ein MSIX-Paket, das endbenutzern über den Microsoft Store bereitgestellt wird. Es kann einfach und schnell mit Wartungsversionen aktualisiert werden, die Sicherheits- und Zuverlässigkeitskorrekturen umfassen können. Alle frameworkabhängigen Apps, die das Windows App SDK verwenden, haben eine Abhängigkeit von einer freigegebenen Instanz des Frameworkpakets, wie im folgenden Diagramm dargestellt.

Diagramm, wie Apps auf das Windows App SDK-Frameworkpaket zugreifen

Wenn eine neue Version des Windows App SDK Framework-Pakets gewartet wird, werden alle frameworkabhängigen Apps auf die neue Version aktualisiert, ohne eine Kopie erneut verteilen zu müssen. Windows-Updates für die neueste Version von Frameworks, sobald sie veröffentlicht werden, und Apps verweisen automatisch auf die neueste Framework-Paketversion während des Neustarts. Ältere Framework-Paketversionen werden erst aus dem System entfernt, wenn sie nicht mehr ausgeführt oder aktiv von Apps im 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 wichtig ist, die vom Windows App SDK abhängen, folgt das Windows App SDK-Frameworkpaket den Regeln für die semantische Versionierung 2.0.0 . Dies bedeutet, dass nach der Veröffentlichung der Version 1.0 des Windows App SDK-Frameworkpakets die Kompatibilität zwischen Neben- und Patchversionsänderungen garantiert und grundlegende Änderungen nur zwischen Hauptversionsupdates auftreten.

Singleton-Paket

Das Singleton-Paket stellt sicher, dass ein einzelner lang ausgeführter Prozess Dienste verarbeiten kann, die in mehreren Apps verwendet werden, die möglicherweise in verschiedenen Versionen des Windows App SDK ausgeführt werden.

Das Singleton des Windows App SDK ist erforderlich, um Pushbenachrichtigungen für entpackte Apps und verpackte 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 entpackte Apps

Bootstrapper

Der Bootstrapper ist eine Bibliothek, die im Paket mit externem Speicherort oder entpackte App enthalten sein muss. Sie stellt die Bootstrapper-API bereit (siehe Verwenden der Windows App SDK-Laufzeit für Apps, die mit externem Speicherort oder entpackt sind), wodurch entpackte Apps diese wichtigen Aufgaben ausführen können:

  • Initialisieren des Dynamic Dependency Lifetime Manager (DDLM) für das Windows App SDK-Frameworkpaket.
  • Suchen des Windows App SDK-Frameworkpakets und Laden in das Paketdiagramm der App.

Um diese Aufgaben auszuführen, nutzt das Nuget-Paket Modulinitialisierer, um den Bootstrapper für Sie zu verbinden. Legen Sie einfach in Der Projektdatei fest <WindowsPackageType>None</WindowsPackageType> . Wenn Sie die Kontrolle über die Initialisierung wünschen, können Sie die Bootstrapper-API direkt im Startcode Ihrer App aufrufen (siehe Lernprogramm: Verwenden Sie die Bootstrapper-API in einer App, die mit externem Speicherort verpackt ist, oder entpackt, die das Windows App SDK verwendet), damit es das System für die entpackte App ordnungsgemäß initialisieren kann. Ihre App muss die Bootstrapper-API verwenden, bevor sie Windows App SDK-Features wie WinUI, App-Lebenszyklus, MRT Core und DWriteCore verwenden kann.

Die Bootstrapper-Bibliothek in der Windows App SDK 1.0-Version umfasst:

  • 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 entpackten App verwendet wird. Sie enthält einen Server, der von dem 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 eine x86- und eine x64-Version des DDLM haben können, damit Apps beider Architekturen unterstützt werden.

Zusätzliche Anforderungen