Partilhar via


Personalize seus aplicativos Enterprise com pacotes de modificação

A capacidade de personalizar a experiência de um aplicativo é importante, especialmente para empresas. Conversamos com profissionais de TI e sabemos que personalizar aplicativos para atender às necessidades de seus usuários é essencial para o esforço de mudar para o Windows 10. Ao personalizar aplicativos que são empacotados usando MSI, é bem entendido que os profissionais de TI devem adquirir o pacote dos desenvolvedores e reempacotar o instalador com a personalização para atender às suas necessidades. Trata-se de um esforço dispendioso para as empresas. No futuro, queremos dissociar a personalização e a aplicação principal para que a reembalagem não seja mais necessária. Isso garante que as empresas obtenham as atualizações mais recentes dos desenvolvedores, mantendo o controle de suas personalizações.

No Windows 10, versão 1809, introduzimos um novo tipo de pacote MSIX chamado pacote de modificação. Os pacotes de modificação são pacotes MSIX que armazenam personalizações. Os pacotes de modificação também podem ser plugins/complementos que podem não ter um ponto de ativação. Os profissionais de TI podem usar esse recurso para alterar de forma flexível os contêineres MSIX para que os aplicativos sejam sobrepostos pelas personalizações de sua empresa.

Como funciona

Os pacotes de modificação são projetados para empresas que não possuem o código do aplicativo e só têm o instalador. Você pode criar um pacote de modificação usando a versão mais recente da ferramenta de empacotamento MSIX (para Windows 10 versão 1809 ou posterior). Se você tiver o código para o aplicativo, você pode, alternativamente, criar uma extensão de aplicativo.

Se quiser criar um pacote de modificação que tenha uma ligação estrita ao aplicativo principal, você pode declarar o aplicativo principal como uma dependência no manifesto do pacote de modificação.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App"/>
</Dependencies>

O exemplo a seguir demonstra como especificar um certificado ou editor diferente.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App" Publisher="CN=Contoso, C=US" />
</Dependencies>

Esta é uma configuração simples se a relação entre o pacote de modificação e o pacote principal for um-para-um. As personalizações típicas geralmente exigem chaves do Registro em HKEY_CURRENT_USER ou HKEY_CURRENT_USERCLASS. Dentro do nosso pacote MSIX, temos User.dat e Userclass.dat arquivos para capturar as chaves do registro. Você precisará criar User.dat se precisar de chaves do Registro em HKCU\Software* (assim como Registry.dat é usado para HKLM\Software*). Use Userclass.dat se precisar de chaves em HKCU\Sofware\Classes*.

Aqui estão as maneiras típicas de criar um arquivo .dat:

  • Use Regedit para criar um arquivo. Crie uma colmeia no Regedit e insira as chaves necessárias. Em seguida, clique com o botão direito do rato, exporte e guarde como ficheiro hive. Certifique-se de nomear o arquivo User.dat ou Userclass.dat

  • Use uma API para criar os arquivos necessários. Você pode usar a função ORSaveHive para salvar um arquivo .dat. Certifique-se de nomear o arquivo ether User.dat ou Userclass.dat

Depois de fazer as alterações necessárias, você pode criar o pacote de modificação como qualquer outro pacote MSIX. Em seguida, você pode implantar o pacote com a configuração de implantação atual. Ao reiniciar seu aplicativo principal, você pode ver as alterações feitas pelo pacote de modificações. Se você optar por remover o pacote de modificação, seu aplicativo principal será revertido para um estado sem o pacote de modificação.

Descubra quais pacotes de modificação estão instalados no seu dispositivo

Usando o PowerShell, você pode ver os pacotes de modificação instalados usando o comando a seguir.

Get-AppPackage -PackageTypeFilter Optional

Pacotes de modificação no Windows 10, versão 1809

No Windows 10, versão 1809, os pacotes de modificação podem incluir configurações necessárias para serem definidas no Registro, de modo que o pacote principal seja executado conforme o esperado. Ou seja, seu aplicativo principal aproveita o registro para ver se existe um plug-in. Quando você implanta o pacote principal e o pacote de modificação, em tempo de execução, o aplicativo exibirá o registro virtual (VREG) do pacote principal e do pacote de modificação.

Observe que seu pacote principal pode estar usando o VREG para fazer as seguintes coisas:

  • Exibindo onde carregar o arquivo (a DLL) do plug-in. Se esse for o caso, verifique se o arquivo faz parte do pacote. Ao fazer isso, o pacote principal é capaz de acessar o arquivo em tempo de execução.
  • Visualização de onde ver o valor das chaves VREG. Seu pacote principal pode estar procurando um valor para existir no VREG. Quando você criar seu pacote de modificação manualmente ou usando nossa ferramenta, certifique-se de que o valor está correto.

Pacotes de modificação no Windows 10, versão 1903 e posterior

Os seguintes recursos foram adicionados ao Windows 10, versão 1903.

Atualização de manifesto

Adicionamos suporte para o seguinte elemento ao manifesto do pacote de modificação MSIX.

<Properties>
   <rescap6:ModificationPackage>true</rescap6:ModificationPackage>
</Properties>

Para garantir que os pacotes de modificação funcionem na versão 1903 ou posterior, o manifesto do pacote de modificação deve incluir esse elemento. Isso será feito para você se você empacotar seu pacote de modificação MSIX usando a versão de janeiro da ferramenta de embalagem MSIX. Se você converteu um pacote usando nossa ferramenta antes do lançamento, você pode editar seu pacote existente em nossa ferramenta para adicionar esse novo elemento. Além disso, se os usuários instalarem o pacote de modificação, eles serão alertados de que o pacote pode modificar o aplicativo principal.

Se você estiver usando um pacote de modificação que foi criado antes da versão 1903, é necessário editar o manifesto do pacote para atualizar o MaxVersionTested atributo para 10.0.18362.0.

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="10.0.18362.0" />

Criar um pacote de modificação usando a MSIX Packaging Tool

Você pode criar um pacote de modificação com a MSIX Packaging Tool:

  • Especifique o pacote principal. Certifique-se de ter a versão MSIX do seu pacote principal disponível na sua máquina em que você está convertendo. Caso contrário, solicitaremos que você forneça manualmente as informações do editor e do aplicativo principal. Além disso, algumas personalizações exigem que seu aplicativo principal esteja instalado em sua máquina. Pacote de modificação MPT

  • Modifique o pacote depois que ele passar pela conversão usando o editor de pacotes. Pode haver um caso em que o pacote principal exija que seu pacote de modificação tenha certos valores em seu VREG. É aqui que pode ir e editar o pacote de forma adequada.

Criar um pacote de modificação usando MakeAppx.exe

Você pode criar um pacote de modificação manualmente usando a ferramenta MakeAppX.exe incluída no SDK do Windows 10.

  • No manifesto, especifique o pacote principal. Inclua o publicador e o nome do pacote principal.

    <Dependencies>
      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="12.0.0.0"/>
      <uap4:MainPackageDependency Name="HeadTrax" Publisher="CN=Contoso Software, O=Contoso Corporation, C=US" />
    </Dependencies>
    
  • Crie Registry.dat, User.dat e Userclass.dat para criar as chaves do Registro necessárias para carregar seu pacote de modificação. Isso só é necessário se você precisar de seu aplicativo principal para exibir chaves de registro personalizadas. Lembre-se de que, como tudo está sendo executado dentro de um contêiner, em tempo de execução, o pacote principal e o registro virtual do pacote de modificação serão mesclados de modo que o pacote principal possa visualizar o registro virtual dos pacotes de modificação.

Esse processo também suporta plug-ins e personalizações do sistema de arquivos, desde que o executável do aplicativo principal não esteja em um sistema de arquivos virtual (VFS). Isso é para garantir que o pacote principal receberá todos os VFS do pacote principal e do pacote de modificação.

Instalar pacotes de modificação na máquina

A instalação de pacotes de modificação na máquina segue outras convenções de instalação. Vale a pena notar que você pode querer usar o parâmetro -OptionalPackagePath ao instalar o pacote.

Resolução de conflitos

No caso de vários pacotes de modificação tentando alterar o mesmo valor, o conflito é resolvido considerando a ordem alfabética dos nomes dos pacotes de modificação.