Freigeben über


Windows App SDK-Bereitstellungsleitfaden für frameworkabhängige gepackte Apps

Dieser Artikel enthält Anleitungen zum Bereitstellen von frameworkabhängigen verpackten Apps (siehe Was ist MSIX?), die das Windows App SDK verwenden. Das entsprechende Thema für andere frameworkabhängige Paketoptionen ist das Windows App SDK-Bereitstellungshandbuch für frameworkabhängige Apps, die mit externem Speicherort oder entpackt sind.

Übersicht

Wenn Sie ein Projekt mit einer der WinUI 3-Vorlagen in Visual Studio erstellen, ist Ihr Projekt standardmäßig so konfiguriert, dass die App in einem MSIX-Paket mit einem einzigen Projekt erstellt wird (siehe Packen Ihrer App mit einzelprojekt MSIX) oder einem Windows Application Packaging-Projekt (siehe Einrichten der Desktopanwendung für MSIX-Verpackungen in Visual Studio). Anschließend können Sie ein MSIX-Paket für Ihre App erstellen, indem Sie die Anweisungen unter Packen einer Desktop- oder UWP-App in Visual Studio verwenden. Nachdem Sie ein MSIX-Paket für Ihre App erstellt haben, haben Sie mehrere Optionen zum Verwalten Ihrer MSIX-Bereitstellung.

Weitere Informationen zu den Paketen, die Ihre verpackte App möglicherweise benötigt, wenn sie das Windows App SDK verwendet, finden Sie unter Bereitstellungsarchitektur für das Windows App SDK. Dazu gehören die Pakete Framework, Main und Singleton , die alle von Microsoft signiert und veröffentlicht werden. Es gibt zwei Hauptanforderungen für die Bereitstellung einer verpackten App:

  1. Stellen Sie das Windows App SDK-Frameworkpaket bereit.
  2. Rufen Sie die Bereitstellungs-API auf.

Voraussetzungen

Bereitstellen des Windows App SDK-Frameworkpakets

Das Windows App SDK-Frameworkpaket enthält die zur Laufzeit verwendeten Windows App SDK-Binärdateien und wird mit Ihrer Anwendung installiert. Das Framework verfügt über unterschiedliche Bereitstellungsanforderungen für verschiedene Kanäle des Windows App SDK.

Stabile Version

Wenn Sie eine stabile Version (siehe Versionshinweise zu stable channel) des Windows App SDK NuGet-Pakets auf Ihrem Entwicklungscomputer installieren und ein Projekt mit einer der bereitgestellten WinUI 3-Projektvorlagen erstellen, enthält das generierte Paketmanifest ein PackageDependency-Element , das eine Abhängigkeit vom Frameworkpaket angibt.

Wenn Sie ihr App-Paket jedoch manuell mit einem separaten Windows Application Packaging Project erstellen, müssen Sie ein PackageReference in Ihrer Application (package).wapproj Datei wie folgt deklarieren:

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

Diese Paketabhängigkeit stellt sicher, dass das Framework-Paket installiert wird, wenn Ihre App auf einem anderen Computer bereitgestellt wird.

Vorschauversion

Wenn Sie eine Vorschauversion des Windows App SDK NuGet-Pakets auf Ihrem Entwicklungscomputer installieren (siehe Versionshinweise zum Vorschaukanal) wird während der Buildzeit eine Vorschauversion des Windows App SDK-Frameworkpakets als NuGet-Paketabhängigkeit bereitgestellt.

Aufrufen der Bereitstellungs-API

Siehe auch "Initialisieren des Windows App SDK".

Die Bereitstellungs-API wird vom Windows App SDK-Frameworkpaket bereitgestellt und ist im Microsoft.Windows.ApplicationModel.WindowsAppRuntime-Namespace verfügbar. Das Windows-Anwendungsmodell unterstützt das Deklarieren einer Abhängigkeit von den Haupt- und Singleton-Paketen nicht. Die Bereitstellungs-API ist daher aus folgenden Gründen erforderlich:

  1. So stellen Sie das Singleton-Paket für Features bereit, die nicht im Framework-Paket enthalten sind (z. B. Pushbenachrichtigungen).
  2. Zum Bereitstellen des Hauptpakets, das automatische Updates für das Framework-Paket aus dem Microsoft Store ermöglicht.

Für verpackte Apps, die nicht über den Store verteilt werden, sind Sie als Entwickler für die Verteilung des Framework-Pakets verantwortlich. Es wird empfohlen, die Bereitstellungs-API aufzurufen, damit alle kritischen Wartungsupdates bereitgestellt werden. Beachten Sie, dass für die Verwendung von Features außerhalb des Framework-Pakets (z. B. Pushbenachrichtigungen) das Singleton-Paket bereitgestellt werden muss (dies kann mit der Bereitstellungs-API erfolgen, oder indem die MSIX-Pakete mithilfe Ihrer eigenen Installationsmethode verteilt werden).

Wichtig

In Windows App SDK, Version 1.0, verfügen nur verpackte Apps, die voll vertrauenswürdig sind oder über die eingeschränkte PackageManagement-Funktion verfügen, über die Berechtigung, die Bereitstellungs-API zum Installieren der Main- und Singleton-Paketabhängigkeiten zu verwenden. Unterstützung für teilweise vertrauenswürdige verpackte Apps wird in späteren Versionen bereitgestellt.

Sie sollten die Bereitstellungs-API aufrufen, nachdem der Prozess Ihrer App initialisiert wurde, aber bevor Ihre App Windows App SDK-Laufzeitfeatures verwendet, die das Singleton-Paket verwenden (z. B. Pushbenachrichtigungen). Die wichtigsten Methoden der Bereitstellungs-API sind die statischen GetStatus - und Initialize-Methoden der DeploymentManager-Klasse .

  • Die GetStatus-Methode gibt den aktuellen Bereitstellungsstatus der Derzeit geladenen Windows App SDK-Laufzeit zurück. Verwenden Sie diese Methode, um zu ermitteln, ob windows App SDK-Laufzeitpakete installiert werden müssen, bevor die aktuelle App Windows App SDK-Features verwenden kann.
  • Mit der Initialize-Methode wird überprüft, ob alle erforderlichen Pakete für eine Mindestversion vorhanden sind, die von der derzeit geladenen Windows App SDK-Laufzeit benötigt wird. Wenn Paketabhängigkeiten fehlen, versucht die Methode, diese fehlenden Pakete zu registrieren. Ab Windows App SDK 1.1 unterstützt die Initialize-Methode auch die Option zum Erzwingen der Bereitstellung der Windows App SDK-Laufzeitpakete. Dadurch werden alle Prozesse für die Haupt - und Singleton-Laufzeitpakete heruntergefahren und somit ihre Dienste unterbrochen (beispielsweise werden Pushbenachrichtigungen während dieser Zeit keine Benachrichtigungen übermittelt).

Beispiel-APP für die Bereitstellungs-API

Weitere Anleitungen zur Verwendung der GetStatus - und Initialize-Methoden der DeploymentManager-Klasse finden Sie in der verfügbaren Beispiel-App.

Beheben von Installationsfehlern

Wenn bei der Installation der Windows App SDK-Laufzeitpakete ein Fehler auftritt, wird ein Fehlercode zurückgegeben, der das Problem beschreibt.

Wenn Ihre App beispielsweise nicht voll vertrauenswürdig ist oder nicht über die eingeschränkte PackageManagement-Funktion verfügt, erhalten Sie einen ACCESS_DENIED Fehlercode. Informationen zum Überprüfen anderer Fehlercodes, die möglicherweise auftreten, und deren mögliche Ursachen finden Sie unter "Problembehandlung beim Packen, Bereitstellen und Abfragen von Windows-Apps".

Wenn der Fehlercode nicht genügend Informationen bereitstellt, finden Sie weitere Diagnoseinformationen in den detaillierten Ereignisprotokollen (siehe Abrufen von Diagnoseinformationen).

Wenn Fehler auftreten, die Sie nicht diagnostizieren können, speichern Sie ein Problem im GitHub-Repository von WindowsAppSDK mit dem Fehlercode und den Ereignisprotokollen, damit wir das Problem untersuchen können.