Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Paketerweiterungen erweitern das App-Erweiterungsmodell, indem sie einen umfassenderen Austausch von Inhalten zwischen Paketen ermöglichen. Ein Paketerweiterungshost kann Erweiterungen von jedem Paket akzeptieren, sodass er für Erweiterungsszenarien auf Plattformebene geeignet ist.
Note
Paketerweiterungen erfordern Windows 11 und verwenden den uap17 Namespace. Einen abwärtskompatiblen Ansatz finden Sie unter App-Erweiterungen, die uap3 verwenden.
Paketerweiterungen vs. app Erweiterungen
| Funktion | App-Erweiterungen (uap3) |
Paketerweiterungen (uap17) |
|---|---|---|
| Mindestbetriebssystem | Windows 10 1607 | Windows 11 |
| Geltungsbereich | Pro Anwendung | Pro Paket |
| Teilen von Inhalten | Öffentlicher Ordner nur | Vollständiger Paketinhaltszugriff |
| Manifestnamespace | uap3:AppExtension |
uap17:PackageExtension |
Deklarieren eines Paketerweiterungshosts
Fügen Sie dem Manifest der Host-App eine PackageExtensionHost Deklaration hinzu:
<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>
Deklarieren einer Paketerweiterung
Im Manifest des Erweiterungspakets:
<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>
Entdecken von Paketerweiterungen
Verwenden Sie dieselbe AppExtensionCatalog-API , um Paketerweiterungen zur Laufzeit zu ermitteln. Der Hostname stimmt mit dem Name deklarierten im Manifest überein:
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
}
Bewährte Vorgehensweisen
- Verwenden Sie für Erweiterungsnamen eine Benennungskonvention nach dem umgekehrten Domänennamenschema (z. B.
com.company.app.extensions). - Version Ihres Erweiterungsprotokolls, damit Host-Apps alte und neue Erweiterungsformate verarbeiten können.
- Überprüfen Sie Erweiterungsinhalte, bevor Sie sie verwenden – Erweiterungen stammen aus anderen Paketen und sollten nicht blind vertrauenswürdig sein.
Verwandte Inhalte
Windows developer