Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Pakketextensies breiden het app-extensiemodel uit door het delen van bredere inhoud tussen pakketten mogelijk te maken. Een pakketextensiehost kan extensies van elk pakket accepteren, waardoor deze geschikt is voor uitbreidbaarheidsscenario's op platformniveau.
Note
Voor pakketextensies is Windows 11 vereist en wordt de uap17 naamruimte gebruikt. Zie voor een aanpak die compatibel is met eerdere versies App-extensies, die gebruikmaken van uap3.
Pakketuitbreidingen versus appextensies
| Feature | App-extensies (uap3) |
Pakketuitbreidingen (uap17) |
|---|---|---|
| Minimaal besturingssysteem | Windows 10 1607 | Windows 11 |
| Scope | Per app | Per pakket |
| Inhoud delen | Alleen openbare mappen | Volledige toegang tot inhoudspakketten |
| Naamruimte van het manifest | uap3:AppExtension |
uap17:PackageExtension |
Een pakketextensiehost declareren
Voeg een PackageExtensionHost declaratie toe aan het manifest van de host-app:
<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>
Een pakketextensie declareren
In het manifest van het extensiepakket:
<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>
Pakketextensies detecteren
Gebruik dezelfde AppExtensionCatalog-API om pakketextensies tijdens runtime te detecteren. De hostnaam komt overeen met de Name gedeclareerde naam in het manifest:
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
}
Aanbevolen procedures
- Gebruik een reverse-domainnaamconventie voor namen van extensies (bijvoorbeeld
com.company.app.extensions). - Versie van uw extensieprotocol zodat host-apps oude en nieuwe extensie-indelingen kunnen verwerken.
- Valideer extensie-inhoud voordat u deze gebruikt. Extensies zijn afkomstig van andere pakketten en mogen niet blind vertrouwd worden.
Verwante onderwerpen
Windows developer