Partilhar via


Aplicação de patches

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

Um patch do Windows Installer (arquivo .msp) é um pacote independente 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 que são armazenados no fluxo de arquivos de gabinete do pacote de patches. Para obter mais informações sobre as partes de um pacote de patch do Windows Installer, consulte Pacotes de patch.

A manutenção de aplicativos fornecendo um patch do Windows Installer, em vez de um pacote de instalação completo para o produto atualizado, pode 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 que é muito menor do que o pacote de instalação para todo o produto. Uma atualização usando um patch pode preservar a personalização do usuário do aplicativo por meio da atualização.

**Windows Installer 4.5 e posterior: **

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

**Windows Installer 3.0 e 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 reduzindo o tamanho do patch.
  • Ignore 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 Patch Optimization.
  • Crie e instale patches que podem ser desinstalados isoladamente e em qualquer ordem, sem ter que desinstalar e reinstalar todo o aplicativo e outros patches. Para obter mais informações sobre como desinstalar patches, consulte Removendo patches.
  • Aplique patches em uma ordem constante, independentemente da ordem em que os patches são fornecidos ao sistema. Para obter mais informações sobre como o Windows Installer determina a sequência usada para aplicar patches, consulte Sequencing Patches.
  • Aplique patches a um aplicativo que foi instalado em um contexto gerenciado por usuário. Para obter mais informações, consulte Patching Per-User Managed Applications.

**Windows Installer 2.0: **

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

O método recomendado para criar um pacote de patches é usar ferramentas de criação de patches, como Msimsp.exe e Patchwiz.dll. Os desenvolvedores podem gerar um arquivo de criação de patch conforme descrito na seção: Criando um pacote de patch. A criação de um pequeno patch de atualização é descrita na seção: A Small Update Patching Example.

O Microsoft Windows Installer aceita um URL (Uniform Resource Locator) como uma fonte válida para um patch. Para obter mais informações sobre como instalar um patch localizado em um servidor Web, consulte Baixando e instalando 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 Correcção de Instalações Iniciais.

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

Para minimizar a possibilidade de que seu patch não seja quebrado 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 afetar a personalização. Para obter mais informações sobre como aplicar patches em aplicativos personalizados, consulte Patching Custom Applications.