Pacote de pacotes MSIX

Este artigo descreve o processo de criação de um pacote após a conversão de versões x86 e x64 dos instaladores do Windows usando a MSIX Packaging Tool.

Ao agrupar as várias versões de arquitetura do seu instalador em uma entidade, apenas o pacote precisa ser carregado para a Loja ou outro local de distribuição. A plataforma de implantação do Windows 10 está ciente do tipo de pacote .msixbundle e baixará apenas os arquivos aplicáveis à arquitetura do seu dispositivo. Lembre-se de que, se você decidir distribuir um .msixbundle para um aplicativo específico, não poderá voltar a distribuir apenas um pacote MSIX.

A seção a seguir apresenta uma abordagem passo a passo para criar um .msixbundle. Ele pressupõe que você já tenha convertido suas versões x86 e x64 existentes do instalador do Windows para pacotes MSIX.

Configuração

Você precisará da seguinte configuração para criar com êxito um pacote MSIX:

Passo 1: Encontrar MakeAppx.exe

MakeAppx.exe é uma ferramenta disponível no SDK do Windows 10 que permite empacotar e agrupar pacotes MSIX. Você usará essa ferramenta para agrupar os dois pacotes MSIX.

O MakeAppx.exe pode ser usado para extrair o conteúdo de um ficheiro de um pacote de aplicação do Windows 10. Também encripta e desencripta pacotes e conjuntos de aplicações.

Depois que o SDK do Windows 10 é instalado, MakeAppx.exe geralmente é encontrado aqui:

  • [x86] - C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe
  • [x64] - C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\MakeAppx.exe

Passo 2: Agrupar os pacotes

A maneira mais fácil de agrupar pacotes com MakeApp.exe é adicionar todos os pacotes que você deseja agrupar em uma pasta. O diretório deve estar livre de todo o resto, exceto os pacotes que precisam ser empacotados.

Mova os pacotes de aplicativos que você deseja agrupar em um diretório, conforme mostrado na captura de tela a seguir.

Agrupar pacotes em um diretório

Observação

MakeAppx.exe só agrupa pacotes que têm a mesma identidade, o que significa que o AppID, editor e versão têm de ser os mesmos. Somente a arquitetura do processador de pacote para um pacote de aplicativo pode ser diferente.

MakeAppx.exe tem a seguinte sintaxe de linha de comando.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe" bundle /d input_directorypath 
/p <filepath>.msixbundle

Aqui está um comando de exemplo.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe" bundle /d c:\AppPackages\ 
/p c:\MyLOBApp_10.0.0.0_ph32m9x8skttmg.msixbundle

Depois de executar o comando, um .msixbundle não assinado será criado no caminho especificado. Os pacotes não precisam ser assinados antes da agregação.

Passo 3: Assine o pacote

Depois de criar o pacote, você deve assinar o pacote antes de distribuir o aplicativo para seus usuários ou instalá-lo.

Para assinar um pacote, precisará de um certificado geral de assinatura de código e usar o SignTool.exe do SDK do Windows 10.

É altamente recomendável que você use um certificado confiável da autoridade de certificação, pois isso permite que o pacote seja distribuído e implantado em seus dispositivos de usuários finais sem problemas. Depois de ter acesso ao certificado privado (arquivo .pfx), você pode assinar o pacote como mostrado abaixo.

Observação

SignTool.exe está disponível no mesmo diretório que MakeAppx.exe no SDK do Windows 10.

SignTool.exe tem a seguinte sintaxe de linha de comando.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\SignTool.exe" sign /fd <Hash Algorithm> /a 
/f <Path to Certificate>.pfx /p <Your Password> <File path>.msixbundle

Aqui está um comando de exemplo.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\SignTool.exe" sign /fd SHA256 /a 
/f c:\private-cert.pfx /p aaabbb123 c:\MyLOBApp_10.0.0.0_ph32m9x8skttmg.msixbundle

Para obter mais informações sobre como assinar pacotes de aplicativos com o SignTool.exe, consulte este artigo.

Depois de assinar o pacote com êxito, você estará pronto para hospedá-lo em um compartilhamento de rede ou em qualquer rede de distribuição de conteúdo para distribuí-lo aos usuários.