Aplicação de patch

Um aplicativo que tenha sido instalado usando o Microsoft Windows Installer pode ser atualizado reinstalando um pacote de instalação atualizado (.msi arquivo) ou aplicando um patch do Windows Installer (um arquivo .msp) ao aplicativo.

Um patch do Windows Installer (arquivo .msp) é um pacote autossuficiente que contém as atualizações para o aplicativo e descreve quais versões do aplicativo podem receber o patch. Os patches contêm, no mínimo, duas transformações de banco de dados e podem conter arquivos de patch armazenados no fluxo de arquivos do gabinete do pacote de patch. Para obter mais informações sobre as partes de um pacote de patch do Windows Installer, consulte Pacotes de patch.

Os aplicativos de manutenção fornecendo um patch do Windows Installer, em vez de um pacote de instalação completo para o produto atualizado, podem ter vantagens. Um patch pode conter um arquivo inteiro ou apenas os bits de arquivo necessários para atualizar parte do arquivo. Isso pode permitir que o usuário baixe um patch de atualização muito menor do que o pacote de instalação de todo o produto. Uma atualização usando um patch pode preservar uma personalização do usuário do aplicativo por meio da atualização.

**Windows Installer 4.5 ou posterior: **

A partir do Windows Installer 4.5, os desenvolvedores podem marcar componentes em um patch com o valor msidbComponentAttributesUninstallOnSupersedence na tabela Component. Se um patch subsequente for instalado, marcado com o valor msidbPatchSequenceSupersedeEarlier em sua tabela MsiPatchSequence para substituir o primeiro patch, o Windows Installer 4.5 e posterior poderá cancelar o registro e desinstalar componentes marcados como msidbComponentAttributesUninstallOnSupersedence para evitar deixar componentes não utilizados no computador. Se o componente não estiver marcado com esse bit, a instalação do patch de substituição poderá deixar um componente não utilizado no computador. Definir a propriedade MSIUNINSTALLSUPERSEDEDCOMPONENTS tem o mesmo efeito que definir esse bit para todos os componentes.

**Windows Installer 3.0 ou posterior: **

Os desenvolvedores que usam o Windows Installer 3.0 e criam pacotes de patch que têm a tabela MsiPatchSequence podem criar pacotes de patch que fazem o seguinte:

  • Use a linha de base do produto armazenada em cache pelo instalador para atender mais facilmente aplicativos com patches delta menores. Para obter mais informações sobre como usar a linha de base do produto, consulte Reduzir o tamanho do patch.
  • Ignore as ações associadas a tabelas específicas que não são modificadas pelo patch. Isso pode reduzir significativamente o tempo necessário para instalar o patch. Para obter mais informações sobre quais tabelas podem ser ignoradas, consulte Otimização de patch.
  • Crie e instale patches que podem ser desinstalados individualmente e em qualquer ordem, sem precisar desinstalar e reinstalar todo o aplicativo e outros patches. Para obter mais informações sobre como desinstalar patches, consulte Remover patches.
  • Aplique os patches em uma ordem constante, sem importar a ordem em que eles são fornecidos ao sistema. Para obter mais informações sobre como o Windows Installer determina a sequência usada para aplicar patches, consulte Sequenciar patches.
  • Aplique patches a um aplicativo que tenha sido instalado em um contexto gerenciado por usuário. Para obter mais informações, confira Como aplicar um patch aos aplicativos gerenciados por usuário.

**Windows Installer 2.0: **

Não há suporte para a tabela MsiPatchSequence. A partir do Windows Installer 3.0, os pacotes de patch podem conter informações que descrevem a sequência de aplicação de patch para o patch em relação a outras atualizações e informações descritivas adicionais.

O método recomendado para criar um pacote de patch é usar ferramentas de criação de patch, como Msimsp.exe e Patchwiz.dll. Os desenvolvedores podem gerar um arquivo de criação de patch conforme descrito na seção: Criar um pacote de patch. A criação de um pequeno patch de atualização é descrita na seção: Um pequeno exemplo de aplicação de patch de atualização.

O Microsoft Windows Installer aceita uma URL (Uniform Resource Locator) como uma origem válida para um patch. Para obter mais informações sobre como instalar um patch localizado em um servidor Web, consulte Baixar e instalar um patch da Internet.

Um único patch do Windows Installer (arquivo .msp) pode ser aplicado ao pacote de instalação ao instalar um aplicativo pela primeira vez. Para obter mais informações, consulte Aplicação de patch em instalações iniciais.

Não é possível eliminar todas as circunstâncias em que a aplicação de um patch pode exigir acesso à origem da instalação original. No entanto, para minimizar a possibilidade de que o patch exija acesso à fonte original, siga os pontos listados na seguinte seção: Impedir que um patch exija acesso à fonte de instalação original .

Para minimizar a possibilidade de que o patch não seja interrompido por uma transformação de personalização subsequente, normalmente o patch é instalado primeiro, seguido pela personalização. Instalar as transformações de personalização primeiro e, em seguida, o patch, pode interromper a personalização. Para obter mais informações sobre aplicação de patch em aplicativos personalizados, consulte Aplicação de patch em aplicativos personalizados.