Compartilhar via


Patches desinstaláveis

A desinstalação de um patch depende de como o patch foi criado, da versão do Windows Installer utilizada para instalar o patch e das alterações feitas pelo patch no aplicativo. Se não for possível desinstalar um patch, a única maneira de removê-lo é desinstalar todo o aplicativo e reinstalar sem aplicar o patch que está sendo removido.

É possível solicitar a desinstalação de patches aplicados com o Windows Installer versão 3.0 usando as Opções de linha de comando, a função MsiRemovePatches ou o método RemovePatches conforme descrito na seção Desinstalar patches. O Windows Installer verifica se cada um dos patches listados para remoção na propriedade MSIPATCHREMOVE é desinstalável. Se o usuário não tiver privilégios para remover o patch, se o patch for desconhecido para o produto, se a política do patch impedir a remoção ou se o patch tiver sido marcado como não desinstalável, o instalador retornará um erro indicando uma falha na transação de instalação.

Windows Installer 2.0: sem suporte. Patches aplicados usando uma versão do Windows Installer anterior ao Windows Installer 3.0 não poderão ser desinstalados.

Patches que não são desinstaláveis

Um patch (arquivo .msp) aplicado a um aplicativo instalado não poderá ser desinstalado nos seguintes casos. O único método para remover um patch que não pode ser desinstalado é desinstalar o aplicativo corrigido e, em seguida, reinstalar o aplicativo sem reaplicar o patch. Nesse caso, será necessário reaplicar os patches que você não quer remover do aplicativo.

  • Patches aplicados usando uma versão do Windows Installer inferior ao Windows Installer 3.0 não podem ser desinstalados.

  • Patches aplicados a aplicativos instalados em um computador com a política DisablePatchUninstall definida por um administrador não podem ser desinstalados. Quando essa política de computador tiver sido definida, nenhum patch no computador poderá ser desinstalado, mesmo por um administrador.

  • Patches que não possuem uma tabela MsiPatchMetadata no banco de dados não podem ser desinstalados.

  • Patches que não incluem a linha a seguir na tabela MsiPatchMetadata não podem ser desinstalados. O patch não pode ser desinstalado para outros valores de Empresa, Propriedade e Valor.

    Empresa Propriedade Valor
    {Null} AllowRemoval 1

     

  • O patch foi aplicado a um aplicativo instalado em um contexto para o qual o usuário não tem privilégios suficientes para desinstalar patches. As palavras "Não permitido" na tabela a seguir indicam que um administrador ou um usuário não administrador não poderá desinstalar patches de aplicativos corrigidos instalados nesse contexto. A palavra "Permitido" nessa tabela significa que os privilégios não impedem que um usuário administrador ou não administrador desinstale patches, no entanto, por qualquer um dos outros motivos discutidos nesta seção, talvez ainda não seja possível desinstalar o patch.

    Contexto de instalação de aplicativo Desinstalação do patch por administrador Desinstalação do patch por não administrador
    Por computador Permitido Geralmente, não permitido. A única exceção será se o patch foi aplicado usando aplicação de patch (LUA). Um patch marcado como um patch LUA é desinstalável por administradores ou não administradores. O patch LUA está disponível apenas para pacotes instalados por computador a partir da mídia e exige criação especial.
    Não gerenciado por usuário para o usuário atual Permitido Permitido
    Não gerenciado por usuário para usuário diferente Não Permitido Não Permitido
    Gerenciado por usuário para o usuário atual Permitido Não Permitido
    Gerenciado por usuário para usuário diferente Não Permitido Não Permitido

     

  • Uma atualização principal aplicada por um patch não pode ser desinstalada. As principais atualizações de um aplicativo deverão ser realizadas instalando o aplicativo atualizado (arquivo .msi) em vez de um patch.

  • Patches aplicados a uma instalação administrativa não podem ser desinstalados. Não é recomendável a aplicação de patch em instalações administrativas. O conjunto atual de patches deverá ser aplicado no computador do usuário depois que o usuário instalar o aplicativo a partir da imagem administrativa. Isso pode impedir que o código do pacote armazenado em cache no computador do usuário se torne diferente do código do pacote na instalação administrativa. Se o código do pacote armazenado em cache no computador do usuário se tornar diferente daquele na instalação administrativa, reinstale o aplicativo da instalação administrativa e aplique patch no computador cliente.

  • Quando um patch adiciona novo conteúdo a qualquer uma das tabelas da lista a seguir, o Windows Installer marca o patch como não desinstalável. Um patch desinstalável poderá adicionar novos arquivos, assemblies, entradas de registro, componentes ou recursos a uma instalação ao adicionar novas linhas às tabelas do banco de dados que não estejam incluídas nessa lista.

Sequenciamento de patch

Remover patches

Desinstalar patches

Ações personalizadas de desinstalação de patch

MSIPATCHREMOVE

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MsiRemovePatches