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.
MSIX prend en charge quatre types de package : Main, Framework, Resource et Optional. MSIX prend également en charge les packages Bundle, qui sont des conteneurs de distribution pour un ou plusieurs packages MSIX.
Un type de package définit une combinaison de déploiement, de dépendance, d’exécution et de comportement de maintenance. Certains comportements sont inhérents au type, tandis qu’une déclaration de manifeste peut remplacer d’autres valeurs par défaut.
| Type | Objectif principal | Indicateur de manifeste ou d’identité |
|---|---|---|
| Principal | Paquet principal pour une application | Aucune déclaration pour un autre type de package |
| Framework | Bibliothèques partagées, composants ou contenu d’exécution | <Framework>true</Framework> |
| Ressource | Ressources spécifiques à une langue, une échelle ou un qualificateur | <ResourcePackage>true</ResourcePackage> |
| Optionnel | Contenu supplémentaire associé à un package principal | <uap3:MainPackageDependency> |
| Offre groupée | Conteneur de distribution pour plusieurs packages MSIX | Manifeste de l’offre groupée et valeur ResourceId égale à ~ |
Packages principaux
Un package principal représente le package principal d’une application. Il peut déclarer des applications, des capacités, des dépendances, des extensions et des serveurs hors du processus.
Le manifeste ne contient pas de marqueur de package principal explicite. Un paquet est un paquet principal lorsqu’il ne se déclare pas comme un autre type de paquet.
Packages d’infrastructure
Un package Framework fournit des bibliothèques partagées, des composants, des ressources ou d’autres contenus d’exécution. D’autres packages ou processus ajoutent le package Framework à leur graphe de packages avant de charger son contenu.
Les packages d’infrastructure prennent en charge les versions côte à côte afin que les applications puissent passer à des versions plus récentes indépendamment. Un package logiciel déclare ce type en affectant l’élément de manifeste Framework à true.
Pour plus d’informations sur l’utilisation de packages Framework à partir de processus empaquetés et non empaquetés, consultez Utiliser l’API de dépendance dynamique.
Packages de ressources
Un package de ressources sépare les ressources propres à la langue, à l’échelle d’affichage ou à d’autres qualificateurs d’un package principal ou facultatif. Windows installe uniquement les packages de ressources qui s’appliquent à un appareil ou à un utilisateur.
Les paquets de ressources n’autorisent pas l’exécution par défaut. Un package peut remplacer cette valeur par défaut à l’aide de uap6:AllowExecution. Un package déclare le type de ressource en définissant ResourcePackage sur true.
Packages facultatifs
Un package facultatif contient du contenu supplémentaire pour un package principal spécifique. Par exemple, une application peut placer des cartes téléchargeables, des ressources haute résolution ou des outils facultatifs dans des packages distincts.
Contrairement à un package Framework, un package facultatif est associé à une famille de packages principale. Elle déclare cette relation via uap3:MainPackageDependency.
Pour connaître les exigences relatives à la création et à l’ensemble associé, consultez Packages facultatifs et création d’ensembles connexes.
Offres groupées
Un bundle MSIX (.msixbundle) contient un ou plusieurs packages MSIX. Un bundle fournit un artefact de distribution tout en permettant Windows d’installer uniquement l’architecture et les packages de ressources qui s’appliquent à l’appareil cible.
Tous les packages d’un bundle appartiennent à la même famille de packages. Un bundle est un conteneur plutôt qu’un cinquième type de package déployable.
Identifier les types de packages dans le code
La classe Windows.ApplicationModel.Package expose les propriétés qui identifient un type de package :
static string GetPackageType(Windows.ApplicationModel.Package package)
{
if (package.IsBundle)
{
return "Bundle";
}
if (package.IsFramework)
{
return "Framework";
}
if (package.IsResourcePackage)
{
return "Resource";
}
if (package.IsOptional)
{
return "Optional";
}
return "Main";
}
Identifier les types de packages avec PowerShell
Par défaut, Get-AppxPackage retourne les packages Main et Framework. Utilisez -PackageTypeFilter pour inclure d’autres types :
Get-AppxPackage -PackageTypeFilter Main,Framework,Resource,Optional,Bundle |
Select-Object Name, PackageFullName, IsFramework, IsResourcePackage, IsBundle
L’objet de sortie n’expose pas de propriété IsOptional. Utilisez le filtre pour inclure des packages facultatifs et inspecter leur manifeste ou leur relation de package lorsque vous devez les distinguer.