Contêiner de pacote compartilhado

Os contêineres de pacote compartilhado permitem que os profissionais de TI criem um contêiner de runtime de compartilhamento de aplicativos empacotados, compartilhando uma exibição mesclada do sistema de arquivos virtual e do registro virtual, habilitando o acesso aos arquivos raiz e ao estado do pacote uns dos outros. A partir do Windows 10 Insider Preview Build 21354, os profissionais de TI poderão gerenciar quais aplicativos podem estar em qual contêiner, o que é importante para a conversão do MSIX de instaladores herdados. O conceito de um contêiner compartilhado é usado principalmente para personalização, compartilhamento de software pré-requisito e suporte a complementos para aplicativos convertidos. Observe que esse é um recurso exclusivo para empresas e requer privilégios administrativos para o uso.

As operações do contêiner de pacote compartilhado são independentes das operações de implantação de aplicativos. Isso significa que os aplicativos não precisam ser instalados antes que a definição do contêiner de pacote de compartilhamento seja implantada em um dispositivo. Isso também significa que nem todos os aplicativos definidos no contêiner de pacote compartilhado precisam ser instalados para que o contêiner de pacote compartilhado seja executado. Os aplicativos no contêiner de pacote compartilhado podem ser atualizados de forma independente, sem a necessidade de modificar a definição do contêiner de pacote compartilhado.

Observe que um aplicativo só tem permissão para estar em um contêiner. A implantação de um contêiner de pacote compartilhado que contém um aplicativo que já faz parte de um contêiner de pacote compartilhado resultará em um erro.

Pré-requisito

As empresas precisarão de um administrador no dispositivo para usar o recurso. Além disso, todos os pacotes precisam ser pacotes .msix. Para empacotar seus instaladores como um pacote MSIX, visite nossa documentação sobre como criar um pacote a partir de um instalador existente.

Definição de contêiner de pacote compartilhado

O contêiner de pacote compartilhado é definido por um arquivo .xml. A definição do contêiner requer um nome exclusivo e uma lista de pacotes que pertencem a esse contêiner. Só os pacotes principais precisam ser incluídos no .xml. Os pacotes opcionais e os pacotes de modificação serão automaticamente incluídos no contêiner de pacote compartilhado, pois já compartilham o mesmo contêiner do pacote principal. Observe que a prioridade dos pacotes é estabelecida de cima para baixo na lista. Isso significa que o pacote de cima tem a maior prioridade. A prioridade do pacote é usada para resoluções de conflitos entre pacotes que podem ter os mesmos arquivos. Veja abaixo uma amostra de um deles.

<?xml version="1.0" encoding="utf-8"?> 
<AppSharedPackageContainer Name="ContosoContainer"> 
  <PackageFamily Name="Fabrikam.MainApp_8wekyb3d8bbwe"/> 
  <PackageFamily Name="Contoso.MainApp_8wekyb3d8bbwe"/> 
  <PackageFamily Name="ContosoCustomize_7xekyb3d8ccde"/> 
</AppSharedPackageContainer>   

Quando tiver a definição do contêiner .xml, você poderá usar os seguintes comandos do PowerShell para implantar, restaurar, atualizar e remover um contêiner de pacote compartilhado do dispositivo. Observe que todos os outros comandos de implantação de aplicativos permanecem os mesmos (ou seja, a instalação de pacotes)

Comandos do PowerShell

Implantar uma definição de contêiner de pacote compartilhado

Add-AppSharedPackageContainer <path> 

Esse comando implanta a definição do contêiner de pacote compartilhado para o usuário específico. Os parâmetros opcionais incluem o seguinte:

Parâmetro Descrição
ForceApplicationShutdown Fecha todos os pacotes que estão em execução no contêiner de pacote compartilhado.

Remover um contêiner de pacote compartilhado

Remove-AppSharedPackageContainer -Name <name>  

Esse comando remove a definição do contêiner de pacote compartilhado para o usuário específico. Os parâmetros opcionais incluem o seguinte:

Parâmetro Descrição
ForceApplicationShutdown Fecha todos os pacotes no contêiner de pacote compartilhado.

Obter informações sobre um contêiner de pacote compartilhado

Get-AppSharedPackageContainer -Name <name> 

Esse comando obtém informações sobre o contêiner de pacote compartilhado. Em particular, ele mostra quais pacotes estão no contêiner de pacote compartilhado.

Restaurar o contêiner de pacote compartilhado

Reset-AppSharedPackageContainer -Name <name>  

Esse comando destrói todos os dados do aplicativo do contêiner, incluindo os arquivos virtuais e as chaves do registro.