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.
O MSIX dá suporte a quatro tipos de pacote: Main, Framework, Resource e Optional. O MSIX também dá suporte a pacotes Bundle, que são contêineres de distribuição para um ou mais pacotes MSIX.
Um tipo de pacote define uma combinação de implantação, dependência, execução e comportamento de instalação. Algum comportamento é inerente ao tipo, enquanto uma declaração de manifesto pode substituir outros padrões.
| Tipo | Finalidade principal | Indicador de manifesto ou identidade |
|---|---|---|
| Principal | Pacote primário para um aplicativo | Não há definição para outro tipo de pacote |
| Estrutura | Bibliotecas compartilhadas, componentes ou conteúdo de runtime | <Framework>true</Framework> |
| Recurso | Recursos específicos de idioma, escala ou qualificador | <ResourcePackage>true</ResourcePackage> |
| Opcional | Conteúdo adicional associado a um pacote Principal | <uap3:MainPackageDependency> |
| Pacote | Contêiner de distribuição para vários pacotes MSIX | Manifesto do pacote e um valor ResourceId de ~ |
Pacotes principais
Um pacote Principal representa o pacote primário para um aplicativo. Ele pode declarar aplicativos, recursos, dependências, extensões e servidores fora de processo.
O manifesto não contém um marcador Main-package explícito. Um pacote é um pacote Principal quando ele não se declara como outro tipo de pacote.
Pacotes de estrutura
Um pacote framework fornece bibliotecas compartilhadas, componentes, recursos ou outro conteúdo de runtime. Outros pacotes ou processos adicionam o pacote framework ao grafo do pacote antes de carregar seu conteúdo.
Os pacotes de framework dão suporte a versões lado a lado para que os aplicativos possam migrar para versões mais recentes de forma independente. Um pacote declara esse tipo definindo o elemento de manifesto do Framework como true.
Para obter informações sobre como usar pacotes do Framework em processos empacotados e não empacotados, consulte Usar a API de dependência dinâmica.
Pacotes de recursos
Um pacote de recursos separa recursos específicos do idioma, da escala de exibição ou de outro qualificador de um pacote Principal ou Opcional. Windows instala apenas os pacotes de recursos que se aplicam a um dispositivo ou usuário.
Os pacotes de recursos não permitem a execução por padrão. Um pacote pode substituir esse padrão com uap6:AllowExecution. Um pacote declara o tipo de recurso definindo ResourcePackage como true.
Pacotes opcionais
Um pacote opcional contém conteúdo adicional para um pacote principal específico. Por exemplo, um aplicativo pode colocar mapas para download, ativos de alta resolução ou ferramentas opcionais em pacotes separados.
Ao contrário de um pacote Framework, um pacote opcional é associado a uma família de pacotes principal. Ele declara essa relação por meio de uap3:MainPackageDependency.
Para requisitos de criação e do conjunto relacionado, consulte Pacotes opcionais e criação de conjunto relacionado.
Agrupar pacotes
Um pacote MSIX (.msixbundle) contém um ou mais pacotes MSIX. Um bundle fornece um artefato de distribuição, permitindo que o Windows instale apenas os pacotes de arquitetura e de recursos que se aplicam ao dispositivo de destino.
Todos os pacotes em um bundle pertencem à mesma família de pacotes. Um bundle é um contêiner em vez de um quinto tipo de pacote implantável.
Identificar tipos de pacote no código
A classe Windows.ApplicationModel.Package expõe propriedades que identificam um tipo de pacote:
static string GetPackageType(Windows.ApplicationModel.Package package)
{
if (package.IsBundle)
{
return "Bundle";
}
if (package.IsFramework)
{
return "Framework";
}
if (package.IsResourcePackage)
{
return "Resource";
}
if (package.IsOptional)
{
return "Optional";
}
return "Main";
}
Identificar tipos de pacote com o PowerShell
Por padrão, Get-AppxPackage retorna pacotes Main e Framework. Use -PackageTypeFilter para incluir outros tipos:
Get-AppxPackage -PackageTypeFilter Main,Framework,Resource,Optional,Bundle |
Select-Object Name, PackageFullName, IsFramework, IsResourcePackage, IsBundle
O objeto de saída não expõe a propriedade IsOptional. Use o filtro para incluir pacotes opcionais e inspecione seu manifesto ou as relações do pacote quando precisar distingui-los.