Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Création d’une nouvelle application WinUI 3 ? Vous êtes déjà empaqueté par défaut. Cette page est destinée aux développeurs qui doivent faire un choix explicite , généralement lors du portage d’une application existante, du déploiement sur des machines d’entreprise ou de l’ajout de fonctionnalités Windows à une application qui n’a pas été empaquetée à l’origine.
Les applications Windows peuvent être empaquetées, non empaquetées ou quelque part entre elles. Le bon choix dépend de deux choses : la façon dont vous distribuez votre application et les fonctionnalités Windows dont vous avez besoin.
Commencer par votre scénario
« Je suis un développeur indie qui publie sur le Microsoft Store »
Utilisez une application MSIX empaquetée. Le Windows Store nécessite l’empaquetage MSIX. Les applications WinUI 3 créées dans Visual Studio sont empaquetées par défaut. Vous n’avez pas besoin d’apporter de modifications. Vous bénéficiez d’une installation propre, de mises à jour automatiques et d’accès à toutes les fonctionnalités liées à l’identité de package, telles que les notifications et les tâches en arrière-plan.
→ Distribuer votre application empaquetée
« Je crée une application d’entreprise déployée via Intune ou Configuration Manager »
Commencez avec le paquet ; pensez à utiliser un emplacement externe si vous avez déjà un programme d'installation.
- Si vous créez une nouvelle application, utilisez MSIX. Il s’intègre correctement à Intune et SCCM/ConfigMgr et vous donne une identité de package complète.
- Si vous disposez d’une application existante avec son propre programme d’installation que vous ne pouvez pas remplacer, utilisez l’empaquetage avec un emplacement externe. Cela donne à votre application l’identité du package d’application et l’accès à des fonctionnalités telles que les notifications et les tâches en arrière-plan, sans modifier la façon dont vous déployez ou où vous effectuez le déploiement.
- Si votre application n'a réellement besoin d'aucune fonctionnalité soumise à l'identité Windows et que vous contrôlez l'environnement de déploiement, le déploiement non empaqueté peut être efficace, mais vous rencontrerez un obstacle la première fois que vous essayerez d'ajouter des notifications ou des fonctionnalités d'intelligence artificielle.
→ Déployer des applications empaquetées (SDK d’application Windows)
Donner une identité du package en empaquetant avec un emplacement externe
« Je suis un éditeur de logiciels indépendants qui expédie un téléchargement direct avec mon propre programme d’installation »
Utilisez l’empaquetage avec un emplacement externe (anciennement appelé packages dispersés).
C’est l’endroit idéal pour les applications Win32/WPF/WinForms existantes qui sont fournies via leur propre programme d’installation (NSIS, WiX, InstallShield, etc.) et ne veulent pas la remplacer par MSIX. Vous inscrivez un package d’identité léger en même temps que votre programme d’installation existant, vos fichiers binaires restent là où ils se trouvent et vous déverrouillez l’ensemble complet de fonctionnalités Windows contrôlées par l’identité de package.
Vos utilisateurs ne voient aucune modification dans la façon dont ils installent ou mettent à jour votre application. Vous obtenez les fonctionnalités Windows ; ils obtiennent une expérience familière.
Attribuer une identité de paquet en procédant à l'empaquetage avec une localisation externe
→ Ajouter un package d’identité dans Visual Studio
« Je crée un outil interne ou un utilitaire de développement »
Unpackaged est correct, avec des avertissements.
Les applications non empaquetées sont les plus simples à créer et à déployer : xcopy, robocopy ou un script simple est tout ce dont vous avez besoin. Le Kit de développement logiciel (SDK) d’application Windows fonctionne dans des applications non empaquetées via NuGet. Mais certaines fonctionnalités seront indisponibles et, si vous décidez ultérieurement que vous en avez besoin, définir une identité de package rétroactive n'est pas une tâche facile.
Avant de passer à un mode sans emballage, consultez le tableau des fonctionnalités ci-dessous par rapport à votre feuille de route. Si les notifications, les tâches en arrière-plan ou les API IA sont à l’horizon, envisagez de commencer empaquetées.
Empaquetage des modèles en un clin d’œil
| Modèle | Identité du package | Installateur | Magasin admissible | Idéal pour |
|---|---|---|---|---|
| Empaqueté (MSIX) | ✅ Oui | MSIX remplace le programme d’installation | ✅ Oui | Nouvelles applications, publication du Windows Store, gestion des appareils mobiles d’entreprise |
| Emballage avec emplacement externe | ✅ Oui | Votre programme d’installation existant | ❌ Non | Applications existantes avec propre programme d’installation, éditeurs de logiciels indépendants |
| Non empaqueté | ❌ Non | XCopy / script | ❌ Non | Outils internes, utilitaires de développement, scénarios simples |
Fonctionnalités nécessitant l’identité du package
Ces fonctionnalités Windows fonctionnent uniquement dans les applications qui ont une identité de package, via l’empaquetage MSIX complet ou l’empaquetage avec un emplacement externe.
| Fonctionnalité | Remarques |
|---|---|
| Notifications d’application (toast) |
AppNotificationManager nécessite une identité de package |
| Tâches en arrière-plan | L’inscription nécessite une identification de paquet |
| API Windows AI (Phi Silicon, OCR, etc.) | La plupart des API Windows AI nécessitent une identité de package |
| Notifications Push (WNS) | L’inscription de canal nécessite une identité de package |
| Cible de partage | Déclaré dans le manifeste du package |
| Extensions de menu contextuel personnalisées | Déclaré dans le manifeste du package |
| Associations de type de fichier et de protocole | Les associations enrichies nécessitent une identité de package |
| Tâches de démarrage | Nécessite une identité de package |
| Services d’application | Nécessite une identité de paquet |
Conseil / Astuce
Si vous utilisez une application non empaquetée et que vous rencontrez des erreurs E_ILLEGAL_METHOD_CALL ou APPMODEL_ERROR_NO_PACKAGE lors de l'appel des API Windows, cela est dû à l'exigence d'identité du package. Considérez l’empaquetage avec un emplacement externe comme solution avec le moins de friction.
Empaquetage avec emplacement externe
L’empaquetage avec un emplacement externe (également appelé packages dispersés) vous permet d’inscrire un petit package d’identité à côté de votre application existante, sans avoir à modifier votre programme d’installation, vos emplacements binaires ni votre processus de mise à jour. Il a été introduit dans Windows 10 version 2004 (build 19041).
Vous fournissez :
- Manifeste de package (fichier XML décrivant votre identité d’application)
-
.msixSigné contenant uniquement le manifeste (pas de fichiers binaires)
Votre programme d’installation existant inscrit ce package d’identité et Windows traite votre application comme ayant une identité de package à partir de ce point.
Il s'agit de quelque chose de distinct du packaging MSIX complet :
| MSIX | Emplacement externe | |
|---|---|---|
| Remplace votre programme d’installation | Oui | Non |
| Fichiers binaires à l’intérieur du package | Oui | Non (externe) |
| Magasin éligible | Oui | Non |
| Identité du package | Oui | Oui |
| Mécanisme de mise à jour | Mise à jour MSIX | Votre mécanisme existant |
Déploiement dépendant de l’infrastructure et autonome
Séparément du modèle d’empaquetage, les applications utilisant le Kit de développement logiciel (SDK) d’application Windows choisissent comment gérer leurs dépendances d’exécution :
- Dépendant de l’infrastructure : le runtime du Kit de développement logiciel (SDK) d’application Windows doit être installé sur l’ordinateur de l’utilisateur. Empreinte d’application plus petite ; s’appuie sur le runtime présent ou installé automatiquement.
- Autonome : tous les fichiers binaires du Kit de développement logiciel (SDK) d’application Windows sont fournis avec votre application. Encombrement plus important ; aucune nécessité d’exécution externe. Convient pour les environnements d’entreprise verrouillés.
→ Déployer des applications autonomes
Contenu connexe
- Fonctionnalités nécessitant l’identité du package
- Vue d’ensemble de l’identité du paquet
- Déployer des applications empaquetées (Kit de développement logiciel (SDK) d’application Windows
- Déployer des applications non empaquetées (Kit de développement logiciel (SDK) d’application Windows
- Tutoriel : Annuler le package d’une application WinUI
Windows developer