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.
Les extensions de package développent le modèle d’extension d’application en autorisant un partage de contenu plus large entre les packages. Un hôte d’extension de package peut accepter des extensions à partir de n’importe quel package, ce qui le rend adapté aux scénarios d’extensibilité au niveau de la plateforme.
Note
Les extensions de package nécessitent Windows 11 et utilisent l’espace uap17 de noms. Pour une approche compatible antérieure, consultez les extensions d’application qui utilisent uap3.
Extensions de paquet ou extensions d’application
| Fonctionnalité | Extensions d’application (uap3) |
Extensions de paquet (uap17) |
|---|---|---|
| Système d’exploitation minimal | Windows 10 1607 | Windows 11 |
| Scope | Par application | Par paquet |
| Partage de contenu | Dossier public uniquement | Accès complet au contenu du package |
| Espace de noms du manifeste | uap3:AppExtension |
uap17:PackageExtension |
Déclarer un hôte d’extension de package
Ajoutez une PackageExtensionHost déclaration au manifeste de l’application hôte :
<Package xmlns:uap17="http://schemas.microsoft.com/appx/manifest/uap/windows10/17" ...>
<Applications>
<Application ...>
<Extensions>
<uap17:Extension Category="windows.packageExtensionHost">
<uap17:PackageExtensionHost>
<uap17:Name>com.example.myplatform.extensions</uap17:Name>
</uap17:PackageExtensionHost>
</uap17:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Déclarer une extension de package
Dans le manifeste du package d’extension :
<Package xmlns:uap17="http://schemas.microsoft.com/appx/manifest/uap/windows10/17" ...>
<Applications>
<Application ...>
<Extensions>
<uap17:Extension Category="windows.packageExtension">
<uap17:PackageExtension Name="com.example.myplatform.extensions"
Id="MyExtension"
DisplayName="My Extension"
Description="Adds features to the platform">
<uap17:Properties>
<ExtensionType>content</ExtensionType>
<Version>1.0</Version>
</uap17:Properties>
</uap17:PackageExtension>
</uap17:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Découvrir les extensions de package
Utilisez la même API AppExtensionCatalog pour découvrir les extensions de package au moment de l’exécution. Le nom d’hôte correspond à celui Name déclaré dans le manifeste :
var catalog = AppExtensionCatalog.Open("com.example.myplatform.extensions");
var extensions = await catalog.FindAllAsync();
foreach (var ext in extensions)
{
System.Diagnostics.Debug.WriteLine(
$"Found extension: {ext.DisplayName} ({ext.Id})");
// Read custom properties
var properties = await ext.GetExtensionPropertiesAsync();
// Access properties as needed
}
Bonnes pratiques
- Utilisez une convention d’affectation de noms de domaine inverse pour les noms d’extensions (par exemple,
com.company.app.extensions). - Version de votre protocole d’extension afin que les applications hôtes puissent gérer les anciens et nouveaux formats d’extension.
- Validez le contenu de l’extension avant de l’utiliser : les extensions proviennent d’autres packages et ne doivent pas être approuvées de manière aveugle.
Contenu connexe
Windows developer