Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Noções básicas sobre atualizações de pacotes de aplicativos MSIX
Quando um pacote de aplicativo MSIX é criado, um arquivo de manifesto é gerado contendo detalhes relacionados aos arquivos incluídos no pacote de aplicativo MSIX. Durante a criação do pacote, uma parte dos metadados é criada e armazenada no pacote .msix ou .msixbundle, o que permite que partes do pacote sejam identificadas exclusivamente pelo Windows. Mais tarde, durante a atualização, o Windows pode usar esse arquivo de metadados para comparar o pacote antigo com o novo pacote e determinar as coisas que precisam ser baixadas para o dispositivo. Dado que esses metadados permitem que partes do pacote sejam identificadas de forma exclusiva, isso significa que o mecanismo de atualização diferencial funciona plenamente de qualquer versão de um pacote para qualquer outra versão de um pacote (supondo que o pacote fonte tenha uma versão inferior ao pacote de destino).
Tudo começa no arquivo AppxBlockMap.xml (os metadados acima mencionados). O arquivo AppxBlockMap.xml é um documento XML que contém uma lista bidimensional de informações sobre arquivos no pacote. A primeira dimensão apresenta detalhes de alto nível sobre o arquivo (por exemplo, nome e tamanho) e a segunda dimensão fornece representações de hash SHA2-256 de cada fatia de 64KB desse arquivo (também conhecido como "bloco").
O primeiro hash representa o primeiro bloco de 64 KB do arquivo e o segundo hash representa os 35 KB restantes - dado que o arquivo tem 101188 bytes.
Durante uma atualização, se o segundo bloco desse arquivo fosse modificado, o hash também seria atualizado para refletir esse fato. O componente de download entende isso e só puxará para baixo o segundo bloco e reutilizará o primeiro bloco inalterado do pacote antigo.
Além disso, se um arquivo inteiro não foi alterado (o que é determinado pelo conjunto completo de blocos não mudando), então esse arquivo pode ser reutilizado a partir do pacote existente - resultando em enormes economias para os usuários do Windows 10
Atualizando para versões mais recentes
Quando uma versão mais recente do pacote do aplicativo MSIX é instalada, o arquivo de manifesto é comparado e os blocos de arquivo modificados são identificados. Como o pacote do aplicativo MSIX é atualizado para a versão mais recente, somente os arquivos modificados são recuperados, diminuindo o consumo de largura de banda se os aplicativos atualizados residirem em um compartilhamento de rede ou externos a uma organização.
Atualizando para versões mais antigas
Quando uma versão mais antiga do pacote do aplicativo MSIX é instalada, o arquivo de manifesto é comparado e os blocos de arquivo modificados são identificados. Como o pacote do aplicativo MSIX é atualizado para a versão mais antiga, somente os arquivos modificados são recuperados, diminuindo o consumo de largura de banda se os aplicativos atualizados residirem em um compartilhamento de rede ou externos a uma organização.
Otimizando experiências de atualização
A entrega ou instalação de um pacote de aplicativo MSIX em um dispositivo pode ser configurada para melhorar a experiência dos usuários. Quando uma aplicação é implantada, o dispositivo pode ser configurado para atualizá-la após o utilizador fechar a aplicação ou forçar o seu encerramento e atualizá-la forçadamente.
PowerShell
A instalação de um pacote de aplicativo MSIX em um dispositivo usando o PowerShell aproveita o cmdlet add-appxpackage . Este cmdlet contém os seguintes parâmetros, que alteram a instalação do pacote do aplicativo MSIX ou a experiência do usuário de atualização.
| Parâmetro | Descrição |
|---|---|
| -AdiarRegistoQuandoPacotesEstãoEmUso | Indica que esse cmdlet impedirá que o pacote do aplicativo MSIX seja atualizado enquanto o usuário tiver o aplicativo aberto no momento. |
| -ForçarEncerramentoAplicação | Indica que esse cmdlet força todos os processos ativos associados ao pacote ou suas dependências a serem encerrados |
| -ForceUpdateFromAnyVersion | Indica que o pacote do aplicativo MSIX forçará uma versão específica de um pacote a ser preparada/registrada, independentemente de uma versão superior já estar em estágios/registrada. |
| -InstallAllResources | Indica que o cmdlet força a implantação de todos os pacotes de recursos especificados a partir de um argumento de pacote. Isso substitui a verificação da aplicabilidade dos recursos do mecanismo de implantação e obriga a preparação de todos os pacotes de recursos. |
| -ManterFicheirosEmCasoDeFalha | No caso de uma implantação com falha, se essa opção estiver definida como True, os arquivos que foram criados na máquina de destino durante o processo de instalação não serão removidos. |
| -Atualização | Especifica que o pacote que está sendo adicionado é uma atualização de pacote de dependência. Um pacote de dependência é removido quando o aplicativo pai é removido. Se não for especificado, o pacote não será removido quando a aplicação principal for removida. |
Para obter uma lista completa dos parâmetros disponíveis para este cmdlet, visite o artigo do PowerShell sobre add-appxpackage.