guide de déploiement Windows App SDK pour les applications empaquetées dépendantes de l’infrastructure

Cet article fournit des conseils sur le déploiement d’applications empaquetées dépendantes de l’infrastructure (voir Qu’est-ce que MSIX ?) qui utilisent le Windows App SDK. La rubrique équivalente pour les autres options d’empaquetage dépendant de l’infrastructure est Windows App SDK guide de déploiement pour les applications dépendantes de l’infrastructure empaquetées avec un emplacement externe ou non empaquetées.

Vue d’ensemble

Par défaut, lorsque vous créez un projet à l’aide de l’un des modèles WinUI 3 dans Visual Studio, votre projet est configuré pour générer l’application dans un package MSIX à l’aide d’un seul projet MSIX (voir Empaqueter votre application à l’aide d’un seul projet MSIX) ou d’un projet d’empaquetage d’applications Windows (voir Configurer votre application de bureau pour l’empaquetage MSIX dans Visual Studio). Vous pouvez ensuite créer un package MSIX pour votre application en suivant les instructions fournies dans Packager une application de bureau ou UWP dans Visual Studio. Après avoir créé un package MSIX pour votre application, vous disposez de plusieurs options pour gérer votre déploiement MSIX.

Pour en savoir plus sur les packages dont votre application empaquetée peut avoir besoin lorsqu’elle utilise le Windows App SDK, consultez Architecture de déploiement pour le Windows App SDK. Il s’agit notamment des packages Framework, Main et Singleton ; qui sont tous signés et publiés par Microsoft. Il existe deux exigences main pour le déploiement d’une application empaquetée :

  1. Déployez le package d’infrastructure Windows App SDK.
  2. Appelez l’API de déploiement.

Prérequis

Déployer le package d’infrastructure Windows App SDK

Le package d’infrastructure Windows App SDK contient les fichiers binaires Windows App SDK utilisés au moment de l’exécution, et il est installé avec votre application. L’infrastructure a des exigences de déploiement différentes pour les différents canaux du Windows App SDK.

Version stable

Lorsque vous installez une version de version stable (consultez Notes de publication du canal stable) du package NuGet Windows App SDK sur votre ordinateur de développement et que vous créez un projet à l’aide de l’un des modèles de projet WinUI 3 fournis, le manifeste de package généré contient un élément PackageDependency qui spécifie une dépendance sur le package d’infrastructure.

Toutefois, si vous générez votre package d’application manuellement à l’aide d’un projet d’empaquetage d’application Windows distinct, vous devez déclarer un PackageReference dans votre Application (package).wapproj fichier, comme suit :

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

Cette dépendance de package garantit que le package Framework est installé lorsque votre application est déployée sur un autre ordinateur.

Version préliminaire

Lorsque vous installez une version préliminaire (voir Notes de publication du canal préversion) du package NuGet Windows App SDK sur votre ordinateur de développement, une version préliminaire du package d’infrastructure Windows App SDK est déployée au moment de la génération en tant que dépendance de package NuGet.

Appeler l’API de déploiement

Consultez également Initialiser le Windows App SDK.

L’API De déploiement est fournie par le package d’infrastructure Windows App SDK et est disponible dans l’espace de noms Microsoft.Windows.ApplicationModel.WindowsAppRuntime. Le modèle d’application Windows ne prend pas en charge la déclaration d’une dépendance sur les packages Main et Singleton. L’API de déploiement est donc requise pour les raisons suivantes :

  1. Pour déployer le package Singleton pour les fonctionnalités qui ne se trouve pas dans le package Framework (par exemple, les notifications Push).
  2. Pour déployer le package Main, qui active les mises à jour automatiques du package Framework à partir du Microsoft Store.

Pour les applications empaquetées qui ne sont pas distribuées via le Store, vous êtes responsable de la distribution du package Framework en tant que développeur. Nous vous recommandons d’appeler l’API de déploiement afin que toutes les mises à jour de maintenance critiques soient fournies. Notez que pour utiliser des fonctionnalités en dehors du package Framework (par exemple, les notifications Push), le package Singleton doit être déployé (cela peut être effectué avec l’API de déploiement ou en redistribuant les packages MSIX à l’aide de votre propre méthode d’installation).

Important

Dans Windows App SDK version 1.0, seules les applications empaquetées qui font l’objet d’une confiance totale ou dont la fonctionnalité packageManagement est restreinte ont l’autorisation d’utiliser l’API de déploiement pour installer les dépendances de package Main et Singleton. La prise en charge des applications empaquetées d’approbation partielle sera disponible dans les versions ultérieures.

Vous devez appeler l’API de déploiement une fois le processus de votre application initialisé, mais avant que votre application utilise Windows App SDK fonctionnalités d’exécution qui utilisent le package Singleton (par exemple, les notifications Push). Les méthodes main de l’API De déploiement sont les méthodes GetStatus et Initialize statiques de la classe DeploymentManager.

  • La méthode GetStatus retourne le status de déploiement actuel du runtime Windows App SDK actuellement chargé. Utilisez cette méthode pour déterminer s’il est nécessaire d’installer Windows App SDK packages d’exécution avant que l’application actuelle puisse utiliser Windows App SDK fonctionnalités.
  • La méthode Initialize vérifie si tous les packages requis sont présents dans une version minimale requise par le runtime Windows App SDK actuellement chargé. Si des dépendances de package sont manquantes, la méthode tente d’inscrire ces packages manquants. À compter de Windows App SDK 1.1, la méthode Initialize prend également en charge l’option de déploiement forcé des packages d’exécution Windows App SDK. Cela arrête tous les processus pour les packages d’exécution Main et Singleton , et interrompt donc leurs services (par exemple, les notifications Push ne fournissent pas de notifications pendant cette période).

Exemple d’application d’API de déploiement

Pour obtenir des conseils supplémentaires sur l’utilisation des méthodes GetStatus et Initialize de la classe DeploymentManager , explorez l’exemple d’application disponible.

Résoudre les erreurs d’installation

Si l’API de déploiement rencontre une erreur lors de l’installation des packages d’exécution Windows App SDK, elle retourne un code d’erreur qui décrit le problème.

Par exemple, si votre application n’est pas entièrement fiable ou ne dispose pas de la fonctionnalité de gestion de package restreinte, vous obtiendrez un code d’erreur ACCESS_DENIED . Pour passer en revue d’autres codes d’erreur que vous pouvez rencontrer et leurs causes possibles, consultez Résolution des problèmes liés à l’empaquetage, au déploiement et à la requête des applications Windows.

Si le code d’erreur ne fournit pas suffisamment d’informations, vous trouverez plus d’informations de diagnostic dans les journaux d’événements détaillés (voir Obtenir des informations de diagnostic).

Si vous rencontrez des erreurs que vous ne pouvez pas diagnostiquer, déposez un problème dans le référentiel GitHub WindowsAppSDK avec le code d’erreur et les journaux des événements afin que nous puissions examiner le problème.