Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Paket uzantıları, paketler arasında daha geniş içerik paylaşımına izin vererek uygulama uzantısı modelini genişletir. Paket uzantısı konağı herhangi bir paketten uzantıları kabul edebilir ve bu da platform düzeyinde genişletilebilirlik senaryoları için uygun hale getirir.
Note
Paket uzantıları Windows 11 gerektirir ve ad alanını uap17 kullanır. Eski sürümlerle uyumlu bir yaklaşım için, uygulama uzantıları bölümüne bakın; bunlar uap3 kullanır.
Paket uzantıları vs. app uzantıları
| Özellik | Uygulama uzantıları (uap3) |
Paket uzantıları (uap17) |
|---|---|---|
| En düşük işletim sistemi | Windows 10 1607 | Windows 11 |
| Scope | Uygulama başına | Paket başına |
| İçerik paylaşımı | Yalnızca ortak klasör | Tam paket içeriği erişimi |
| Manifest ad alanı | uap3:AppExtension |
uap17:PackageExtension |
Paket uzantısı konağı bildirme
Ana uygulamanın manifestosuna bir PackageExtensionHost bildirimi ekleyin:
<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>
Paket uzantısı bildirme
Uzantı paketinin bildiriminde:
<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>
Paket uzantılarını bulma
Çalışma zamanında paket uzantılarını bulmak için aynı AppExtensionCatalog API'sini kullanın. Ana bilgisayar adı bildirimde bildirilen adla eşleşir Name :
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
}
Önerilen yöntemler
- Uzantı adları için bir ters etki alanı adlandırma kuralı kullanın (örneğin,
com.company.app.extensions). - Ana bilgisayar uygulamalarının eski ve yeni uzantı biçimlerini işleyebilmesi için uzantı protokolünüzü sürümleyin.
- Uzantı içeriğini kullanmadan önce doğrulayın; uzantılar diğer paketlerden gelir ve körü körüne güvenilmemelidir.
İlgili içerik
Windows developer