Partager via


Guide de déploiement du SDK d’application Windows pour les applications empaquetées qui dépendent d’un cadre

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 Kit de développement logiciel (SDK) d’application Windows. La rubrique équivalente pour les autres options d’empaquetage dépendant du framework est le guide de déploiement du Kit de développement logiciel (SDK) d’application Windows 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 de MSIX à projet unique (voir Packager votre application à l’aide de MSIX à projet unique) 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 à l’aide des instructions fournies dans Packager une application de bureau ou UWP dans Visual Studio. Après avoir créé un package MSIX pour votre application, vous avez 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 Kit de développement logiciel (SDK) d’application Windows, consultez l’architecture de déploiement pour le Kit de développement logiciel (SDK) d’application Windows. Ceux-ci incluent les packages Framework, Main et Singleton , qui sont tous signés et publiés par Microsoft. Il existe deux exigences principales pour le déploiement d’une application empaquetée :

  1. Déployez le package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows.
  2. Appelez l’API de déploiement.

Prérequis

Déployer le package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows

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

Version stable

Lorsque vous installez une version de version stable (consultez les notes de publication du canal stable) du package NuGet du SDK d’application Windows 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 manuellement votre package d’application à l’aide d’un projet d’empaquetage d’applications Windows distinct, vous devez déclarer une référence 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.

Préversion

Lorsque vous installez une préversion (consultez les notes de publication du canal en préversion) du package NuGet du Kit de développement logiciel (SDK) d’application Windows sur votre ordinateur de développement, une préversion du package d’infrastructure du SDK d’application Windows est déployée pendant le temps de génération sous la forme d’une dépendance de package NuGet.

Appeler l’API de déploiement

Consultez également Initialiser le Kit de développement logiciel (SDK) d’application Windows.

L’API de déploiement est fournie par le package d’infrastructure du Kit de développement logiciel (SDK) d’application Windows 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 ces raisons :

  1. Pour déployer le package Singleton pour les fonctionnalités non dans le package Framework (par exemple, les notifications Push).
  2. Pour déployer le package principal, qui permet des mises à jour automatiques vers le package Framework à partir du Microsoft Store.

Pour les applications empaquetées qui ne sont pas distribuées via le Windows Store, vous êtes responsable de la distribution du package Framework. Nous vous recommandons d’appeler l’API de déploiement afin que toutes les mises à jour de maintenance critiques soient remises. Notez que pour utiliser des fonctionnalités en dehors du package Framework (par exemple, des 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 le Kit de développement logiciel (SDK) d’application Windows version 1.0, seules les applications empaquetées qui ont une confiance totale ou qui ont la fonctionnalité restreinte packageManagement 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 de confiance partielle sera disponible dans les versions ultérieures.

Vous devez appeler l’API de déploiement après l’initialisation du processus de votre application, mais avant d’utiliser les fonctionnalités d’exécution du Kit de développement logiciel (SDK) d’application Windows qui utilisent le package Singleton (par exemple, les notifications Push). Les principales méthodes de l’API Deployment sont les méthodes Statiques GetStatus et Initialize de la classe DeploymentManager .

  • La méthode GetStatus retourne l’état de déploiement actuel du runtime du Kit de développement logiciel (SDK) d’application Windows qui est actuellement chargé. Utilisez cette méthode pour déterminer s’il est nécessaire d’installer des packages d’exécution du Kit de développement logiciel (SDK) d’application Windows avant que l’application actuelle puisse utiliser les fonctionnalités du Kit de développement logiciel (SDK) d’application Windows.
  • La méthode Initialize vérifie si tous les packages requis sont présents à une version minimale nécessaire par le runtime du SDK d’application Windows actuellement chargé. Si des dépendances de package sont manquantes, la méthode tente d’inscrire ces packages manquants. À compter du Kit de développement logiciel (SDK) d’application Windows 1.1, la méthode Initialize prend également en charge l’option permettant de forcer le déploiement des packages d’exécution du Kit de développement logiciel (SDK) d’application Windows. 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 du Kit de développement logiciel (SDK) d’application Windows, elle retourne un code d’erreur qui décrit le problème.

Par exemple, si votre application n’est pas de confiance totale ou n’a pas la fonctionnalité restreinte packageManagement , vous obtenez 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 (consultez Obtenir les informations de diagnostic).

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