Windows App SDK Bereitstellungshandbuch für frameworkabhängige paketbasierte Apps

Dieser Artikel enthält Anleitungen zum Bereitstellen frameworkabhängiger gepackter Apps (siehe Was ist MSIX?), die die Windows App SDK verwenden. Das entsprechende Thema für andere frameworkabhängige Paketoptionen ist Windows App SDK Bereitstellungsleitfaden für frameworkabhängige Apps, die mit externem Speicherort verpackt oder unverpackt 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 ein MSIX-Paket mit einzelprojektbasiertem MSIX (siehe Paketieren Ihrer App mit MSIX für ein einzelnes Projekt) oder ein Windows Application Packaging-Projekt (siehe Einrichten Ihrer Desktopanwendung für MSIX-Verpackungen in Visual Studio) in ein MSIX-Paket integriert wird. Anschließend können Sie ein MSIX-Paket für Ihre App erstellen, indem Sie die Anweisungen unter Paketieren 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 gepackte App möglicherweise benötigt, wenn sie die Windows App SDK verwendet, finden Sie unter Bereitstellungsarchitektur für die Windows App SDK. Dazu gehören die Pakete Framework, Main und Singleton ; die alle von Microsoft signiert und veröffentlicht werden. Es gibt zwei Standard Anforderungen für die Bereitstellung einer gepackten 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 hat unterschiedliche Bereitstellungsanforderungen für verschiedene Kanäle des Windows App SDK.

Stabile Version

Wenn Sie eine stabile Version des Windows App SDK NuGet-Pakets auf Ihrem Entwicklungscomputer installieren und ein Projekt mithilfe 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 mithilfe eines separaten Windows-Anwendungspaketierungsprojekts erstellen, müssen Sie in Ihrer Application (package).wapproj Datei eine PackageReference deklarieren, wie folgt:

<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 NuGet-Pakets Windows App SDK auf Ihrem Entwicklungscomputer installieren (siehe Versionshinweise zu Vorschaukanalversionen), wird eine Vorschauversion des Windows App SDK Frameworkpakets während der Buildzeit als NuGet-Paketabhängigkeit bereitgestellt.

Aufrufen der Bereitstellungs-API

Weitere Informationen finden Sie unter Initialisieren des Windows App SDK.

Die Bereitstellungs-API wird vom Windows App SDK-Frameworkpaket bereitgestellt und ist im Namespace Microsoft.Windows.ApplicationModel.WindowsAppRuntime verfügbar. Das Windows-Anwendungsmodell unterstützt das Deklarieren einer Abhängigkeit von den Paketen Main und Singleton 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. So stellen Sie das Main-Paket bereit, das automatische Updates des Framework-Pakets aus dem Microsoft Store ermöglicht.

Für gepackte 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 wichtigen 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 oder durch Die Verteilung der MSIX-Pakete mithilfe Ihrer eigenen Installationsmethode erfolgen).

Wichtig

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

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 Standard Methoden der Bereitstellungs-API sind die statischen Methoden GetStatus und Initialize der DeploymentManager-Klasse.

  • Die GetStatus-Methode gibt die aktuelle Bereitstellung status der derzeit geladenen Windows App SDK Runtime zurück. Verwenden Sie diese Methode, um zu ermitteln, ob Windows App SDK Runtimepakete installiert werden müssen, bevor die aktuelle App Windows App SDK Features verwenden kann.
  • Die Initialize-Methode überprüft, ob alle erforderlichen Pakete für eine Mindestversion vorhanden sind, die von der derzeit geladenen Windows App SDK Runtime 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 Runtimepakete. Dadurch werden alle Prozesse für die Main- und Singleton-Runtimepakete heruntergefahren und somit deren Dienste unterbrochen (beispielsweise werden pushbenachrichtigungen in dieser Zeit keine Benachrichtigungen übermittelt).

Beispiel-App für die Bereitstellungs-API

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

Beheben von Installationsfehlern

Wenn bei der Bereitstellungs-API während der Installation der Windows App SDK Runtimepakete ein Fehler auftritt, gibt sie einen Fehlercode zurück, der das Problem beschreibt.

Wenn Ihre App beispielsweise nicht vollständig vertrauenswürdig ist oder nicht über die funktion "packageManagement restricted" verfügt, erhalten Sie einen ACCESS_DENIED Fehlercode. Informationen zu anderen 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 ausführlichen Ereignisprotokollen (siehe Abrufen von Diagnoseinformationen).

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