Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O MSIX suporta quatro tipos de pacotes: Main, Framework, Resource e Optional. O MSIX também suporta pacotes Bundle, que são contentores de distribuição para um ou mais pacotes MSIX.
Um tipo de pacote define uma combinação de comportamento de implantação, dependência, execução e manutenção. Algum comportamento é inerente ao tipo, enquanto uma declaração no manifesto pode sobrepor outros defaults.
| Tipo | Objetivo principal | Indicador de manifesto ou identidade |
|---|---|---|
| Principal | Pacote principal para uma aplicação | Não há declaração para outro tipo de pacote |
| Estrutura | Bibliotecas partilhadas, componentes ou conteúdo em tempo de execução | <Framework>true</Framework> |
| Recurso | Recursos específicos de linguagem, escala ou qualificador | <ResourcePackage>true</ResourcePackage> |
| Opcional | Conteúdo adicional associado a um pacote principal | <uap3:MainPackageDependency> |
| Pacote | Pacote de distribuição para múltiplos pacotes MSIX | Manifesto do pacote e um ResourceId valor de ~ |
Pacotes principais
Um pacote Main representa o pacote primário para uma aplicação. Pode declarar aplicações, capacidades, dependências, extensões e servidores externos ao processo.
O ficheiro de manifesto não contém um marcador Main-package explícito. Um pacote é um pacote Main quando não se declara como outro tipo de pacote.
Pacotes de estrutura
Um pacote Framework fornece bibliotecas partilhadas, componentes, recursos ou outro conteúdo em tempo de execução. Outros pacotes ou processos adicionam o pacote Framework ao seu grafo de pacotes antes de carregarem o seu conteúdo.
Os pacotes framework suportam versões lado a lado para que as aplicações possam migrar para versões mais recentes de forma independente. Um pacote declara este tipo ao definir o elemento de manifesto Framework como true.
Para informações sobre a utilização de pacotes Framework a partir de processos empacotados e não empacotados, veja Usar a API de dependências dinâmicas.
Pacotes de recursos
Um pacote de Recursos separa recursos específicos de língua, escala de exibição ou outros qualificadores de um pacote Principal ou Opcional. O Windows instala apenas os pacotes de recursos que se aplicam a um dispositivo ou utilizador.
A execução dos pacotes de recursos não é permitida por defeito. Um pacote pode sobrescrever este padrão com uap6:AllowExecution. Um pacote declara o tipo de Recurso ao definir ResourcePackage como true.
Pacotes opcionais
Um pacote Opcional contém conteúdo adicional para um pacote Principal específico. Por exemplo, uma aplicação pode colocar mapas descarregáveis, recursos de alta resolução ou ferramentas opcionais em pacotes separados.
Ao contrário de um pacote Framework, um pacote Optional está associado a uma família de pacotes Main. Declara essa relação através de uap3:MainPackageDependency.
Para requisitos de criação e conjuntos relacionados, veja Pacotes opcionais e criação de conjuntos relacionados.
Pacotes agregados
Um pacote MSIX agregado (.msixbundle) contém um ou mais pacotes MSIX. Um bundle fornece um artefacto de distribuição, permitindo que o Windows instale apenas a arquitetura e os pacotes de recursos que se aplicam ao dispositivo alvo.
Todos os pacotes de um conjunto pertencem à mesma família de pacotes. Um bundle é um recipiente em vez de um quinto tipo de pacote implantável.
Identificar tipos de packages 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 pacotes com o PowerShell
Por defeito, Get-AppxPackage devolve os pacotes Main e Framework. Utilize -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. Utilize o filtro para incluir pacotes opcionais e inspecione o seu manifesto ou relação de pacote quando precisar de os distinguir.