Contêiner de pacote compartilhado

Os contêineres de pacote compartilhado permitem que os profissionais de TI criem um contêiner de runtime compartilhado para o aplicativo empacotado MSIX – compartilhando uma exibição mesclada do sistema de arquivos virtuais e do registro virtual – permitindo 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 é 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 de pré-requisito e suporte a complementos para aplicativos convertidos. Observe que esse é um recurso somente empresarial e exigirá privilégios administrativos a serem usados.

As operações de contêiner de pacote compartilhado são independentes das operações de implantação do aplicativo. O que isso significa é que os aplicativos não precisam ser instalados antes de a definição de contêiner de pacote de compartilhamento ser implantada em um dispositivo. Isso também significa que nem todos os aplicativos definidos dentro do contêiner de pacote compartilhado precisam ser instalados para que o contêiner de pacote compartilhado seja executado. Os aplicativos dentro do contêiner de pacote compartilhado poderão ser atualizados independentemente sem precisar modificar a definição de contêiner de pacote compartilhado.

Observe que um aplicativo só terá permissão para estar dentro de 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

Para usar o recurso, as empresas exigirão um administrador no dispositivo. Além disso, todos os pacotes precisarão ser pacotes .msix. Para empacotar seus instaladores como pacote MSIX, visite nosso pacote de criação da documentação do instalador existente.

Definição de contêiner de pacote compartilhado

O contianer de pacote compartilhado é definido por um arquivo de .xml. A definição de contêiner requer um nome exclusivo e uma lista de pacotes que pertencem a esse contêiner. Somente os pacotes principais precisam ser incluídos no .xml. Pacotes opcionais e pacotes de modificação serão incluídos automaticamente no contêiner de pacote compartilhado, pois eles já compartilham o mesmo contêiner que seu pacote principal. Observe que a prioridade dos pacotes é estabelecida de cima para baixo da lista. O que significa que o pacote superior terá a prioridade mais alta. A prioridade do pacote é usada para resoluções de conflitos entre pacotes que podem ter os mesmos arquivos. Abaixo está um exemplo de um.

<?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 você tiver a definição de contêiner .xml, poderá usar os seguintes comandos do Powershell para implantar, redefinir, atualizar e remover um contêiner de pacote compartilhado do dispositivo. Observe que todos os outros comandos de implantação de aplicativo permanecem os mesmos (ou seja, instalando pacotes)

Comandos do PowerShell

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

Add-AppSharedPackageContainer <path> 

Esse comando implanta a definição de 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 em execução no contêiner de pacote compartilhado no momento.

Remover um contêiner de pacote compartilhado

Remove-AppSharedPackageContainer -Name <name>  

Esse comando remove a definição de 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 mostrará quais pacotes estão dentro do contêiner de pacote compartilhado.

Redefinir 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.