Compartilhar via


Pacotes de patch

Um patch do Windows Installer (arquivo.msp) é um arquivo usado para fornecer atualizações a aplicativos do Windows Installer. O patch é um pacote independente que contém todas as informações necessárias para atualizar o aplicativo. Um pacote de patch (arquivo .msp) pode ser muito menor do que o pacote do Windows Installer (arquivo .msi) para todo o aplicativo atualizado. Para obter mais informações sobre como entregar pequenas atualizações em aplicativos, confira Reduzindo o tamanho do patch.

Um pacote de patch contém as atualizações reais do 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. Uma transformação atualiza as informações no banco de dados de instalação do aplicativo. A outra transformação adiciona informações que o instalador usa para aplicação de patch de arquivos. O instalador usa as informações fornecidas pelas transformações para aplicar arquivos de patch armazenados no fluxo de arquivos do gabinete do pacote de patch. Um pacote de patch não tem um banco de dados como um pacote de instalação (.msi arquivo.)

A partir do Windows Installer versão 3.0, os pacotes de patch podem conter informações que descrevem a sequência de aplicação de patch do patch em relação a outras atualizações na tabela MsiPatchSequence e outras informações descritivas na tabela MsiPatchMetadata.

Os usuários podem instalar aplicativos e atualizações de uma imagem administrativa de rede. Embora os pacotes de patch possam ser aplicados a instalações administrativas, o método recomendado para fornecer atualizações é fazer com que os usuários instalem o aplicativo original e, em seguida, apliquem os patches à instância local do aplicativo em seu computador. Isso mantém os usuários em sincronização com a imagem administrativa. Se um patch for aplicado à instalação administrativa, todos os clientes dessa instalação administrativa deverão refazer o cache e reinstalar o aplicativo para receber a atualização. Até que um usuário refaça o cache e reinstale, o usuário não poderá instalar sob demanda e reparar instalações da instalação administrativa corrigida.

A partir do Windows Installer 3.0, os não administradores podem aplicar patches a aplicativos gerenciados por usuário depois que o patch é aprovado como confiável por um administrador. Para obter mais informações sobre como fazer isso, confira Aplicando patches a aplicativos gerenciados por usuários. Outro método é usar a aplicação de patch de conta de usuário com privilégios mínimos.

Observação

Se a política Permitir LockdownPatch estiver definida, os usuários não administradores podem aplicar um patch a um aplicativo existente enquanto executam uma instalação com privilégios elevados. Esse método não é recomendado porque permite que patches não confiáveis sejam aplicados a um aplicativo que pode ser executado com privilégios elevados.

 

Os pacotes de patch são compostos pelas partes a seguir. Para obter mais informações sobre a construção dos pacotes de patch, confira Criando um pacote de patch.

Fluxo de informações resumidas

O fluxo de informações resumidas do pacote de patch fornece informações sobre a identidade e a finalidade do patch.

O fluxo de informações resumidas contém, no mínimo, o seguinte:

  • Um GUID que identifica exclusivamente o patch. O GUID para esse patch é acrescentado a uma lista de GUIDs para patches anteriores que são substituídos por esse patch.
  • Uma lista delimitada por ponto e vírgula de códigos de produto com destinos válidos para esse patch.
  • Uma lista delimitada por ponto e vírgula de nomes de subarmazenamento de transformação na ordem em que devem ser processados.
  • Uma lista delimitada por ponto e vírgula de fontes para esse patch.

Transformar subarmazenamento

Um pacote de patch contém transformações que podem adicionar ou remover arquivos, entradas do registro, interfaces do usuário e personalizações. As transformações são incluídas como subarmazenamentos no pacote. Um pacote de patch contém duas transformações para cada banco de dados de destino. Uma transformação é as atualizações reais para o banco de dados de instalação e é gerada a partir das diferenças entre as imagens originais e atualizadas do pacote de instalação. A outra transformação adiciona entradas às tabelas Patch, PatchPackage, Media, InstallExecuteSequence e AdminExecuteSequence. As informações no subarmazenamento a vinculam a UpgradeCode, ProductCode, ProductVersion e ProductLanguage específicos. Um pacote de patch que pode ser aplicado a vários destinos contém mais de um par dessas transformações.

Fluxo de Arquivos do Gabinete

O fluxo de arquivos do gabinete incluído em um patch pode conter estes tipos de arquivos:

  • Arquivos de patch que contêm as informações necessárias a fim de alterar a versão antiga do arquivo para a nova versão. Um único arquivo de patch pode ser usado para atualizar uma ou mais versões antigas de um arquivo.
  • Há arquivos adicionais sendo adicionados ao aplicativo que não estão presentes na versão antiga.
  • Um arquivo de substituição inteiro. No caso raro em que a nova versão de um arquivo for menor do que o patch necessário para atualizar a versão antiga desse arquivo, o novo arquivo poderá ser incluído em sua totalidade. Esses são novos arquivos que são instalados em suas versões antigas.

Criando um pacote de patch