Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As extensões de pacote expandem o modelo de extensão do aplicativo permitindo um compartilhamento de conteúdo mais amplo entre pacotes. Um host de extensão de pacote pode aceitar extensões de qualquer pacote, tornando-o adequado para cenários de extensibilidade no nível da plataforma.
Note
As extensões de pacote exigem Windows 11 e usam o uap17 namespace. Para uma abordagem compatível com versões anteriores, consulte Extensões de app, que usam uap3.
Extensões de pacote vs. extensões de aplicativo
| Característica | Extensões de aplicativo (uap3) |
Extensões de pacote (uap17) |
|---|---|---|
| SO mínimo | Windows 10 1607 | Windows 11 |
| Scope | Por aplicativo | Por pacote |
| Compartilhamento de conteúdo | Somente pasta pública | Acesso completo ao conteúdo do pacote |
| Espaço de nomes do manifesto | uap3:AppExtension |
uap17:PackageExtension |
Declarar um host de extensão do pacote
Adicione uma PackageExtensionHost declaração ao manifesto do aplicativo host:
<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>
Declarar uma extensão de pacote
No manifesto do pacote de extensão:
<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>
Conheça extensões de pacotes
Use a mesma API AppExtensionCatalog para descobrir extensões de pacote em runtime. O nome do host corresponde ao Name declarado no manifesto:
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
}
Práticas recomendadas
- Use uma convenção de nomenclatura de domínio reverso para nomes de extensão (por exemplo,
com.company.app.extensions). - Versão do protocolo de extensão para que os aplicativos host possam lidar com formatos de extensão antigos e novos.
- Valide o conteúdo da extensão antes de usá-lo – as extensões vêm de outros pacotes e não devem ser cegamente confiáveis.
Conteúdo relacionado
Windows developer