Partilhar via


Como criar um pacote de patch

Os desenvolvedores criam um pacote de patch gerando um arquivo de criação de patch e usando Msimsp.exe para chamar a função UiCreatePatchPackageEx no Patchwiz.dll. Msimsp.exe e Patchwiz.dll são fornecidos no SDK do Windows Installer. Para obter mais informações, confira Um exemplo de aplicação de patch de atualização pequena.

Como a aplicação de um patch para um pacote do Windows Installer resulta na instalação das fontes originais usando um novo arquivo .msi, o novo arquivo .msi deve permanecer compatível com o layout da origem original.

Ao criar um pacote de patch, você deve usar uma imagem de instalação descompactada para criar um patch, por exemplo, uma imagem administrativa ou uma imagem de instalação descompactada de um CD-ROM. Você também deve aderir às seguintes restrições:

  • Não mova arquivos de uma pasta para outra.

  • Não mova arquivos de um gabinete para outro.

  • Não altere a ordem dos arquivos em um gabinete.

  • Não altere o número de sequência de arquivos existentes. O número da sequência é o valor especificado na coluna Sequência da Tabela de Arquivos.

  • Todos os novos arquivos adicionados pelo patch devem ser colocados no final da sequência de arquivos existente. O número de sequência de qualquer novo arquivo na imagem atualizada deve ser maior do que o maior número de sequência de arquivos existentes na imagem de destino.

  • Não altere as chaves primárias na Tabela de Arquivos entre as versões de arquivo original e nova .msi.

    Observação

    O arquivo deve ter a mesma chave na Tabela de Arquivos da imagem de destino e da imagem atualizada. Os valores de cadeia de caracteres na coluna Arquivo de ambas as tabelas devem ser idênticos, incluindo o caso.

     

  • Não crie um pacote com chaves de Tabela de Arquivos que diferem apenas no caso, por exemplo, evite o exemplo de tabela a seguir.

    Arquivo Component_ FileName
    readme.txt Comp1 readme.txt
    ReadMe.txt Comp2 readme.txt

     

    O Windows Installer pode permitir o exemplo de tabela anterior quando Comp1 e Comp2 estão instalados em diretórios diferentes, mas você não pode usar Msimsp.exe ou Patchwiz.dll para gerar um patch para o pacote. Msimsp.exe e Patchwiz.dll chamam Makecab.exe de, que não diferencia maiúsculas de minúsculas e falha.

    Ao usar módulos de mesclagem na configuração, verifique se os números de sequência de arquivos e o layout seguem as diretrizes acima.