Atualizações principais

Uma atualização importante é uma atualização abrangente de um produto que precisa de uma alteração da propriedade ProductCode.

Uma atualização principal típica remove uma versão anterior de um aplicativo e instala uma nova versão. Uma atualização importante pode reorganizar a árvore de componentes do recurso. Para obter mais informações, confira ProductCode e Como alterar o código do produto.

Durante uma atualização principal usando o Windows Installer, o instalador pesquisa o computador do usuário em busca de aplicativos relacionados à atualização pendente e, quando detecta um, recupera a versão do aplicativo instalada no registro do sistema. Em seguida, o instalador usa informações no banco de dados de atualização para determinar se deseja atualizar o aplicativo instalado.

Para habilitar os recursos de atualização do instalador, cada pacote deve ter uma propriedade UpgradeCode e uma tabela Atualização. Cada produto autônomo ou pacote de produtos deve ter seu próprio UpgradeCode. Para obter mais informações sobre como usar o UpgradeCode, confira a seção Como usar um UpgradeCode. Cada registro na tabela Atualizar fornece uma combinação do código de atualização, da versão do produto e das informações de idioma usadas para identificar um conjunto de produtos afetados pela atualização. Quando a ação FindRelatedProducts detecta que um produto afetado está instalado no sistema, ela acrescenta o código do produto a uma propriedade na coluna ActionProperty da tabela Atualizar. A ação RemoveExistingProducts e a ação MigrateFeatureStates removem ou migram os produtos listados na lista ActionProperty. Os autores de pacotes também podem seguir o procedimento descrito no tópico: Como preparar um aplicativo para futuras atualizações principais.

Os pacotes de atualização do Windows Installer podem ser criados de modo que as atualizações principais não sejam instaladas se o usuário já tiver uma versão mais recente do aplicativo instalado. Para obter mais informações sobre como criar um pacote que não será instalado em uma versão mais recente, confira Como impedir que um pacote antigo seja instalado em uma versão mais recente

Observação

O Windows Installer usa apenas os três primeiros campos da versão do produto. Confira a propriedadeProductVersion para obter descrições desses campos. Se você incluir um quarto campo na versão do produto, o instalador ignorará o quarto campo.

 

O método recomendado para aplicar uma atualização principal instalando o pacote completo do produto atualizado. Para obter informações sobre como aplicar uma atualização principal instalando o produto, confira Como aplicar atualizações principais instalando o produto.

Uma atualização principal aplicada como um Pacote de Patch do produto não pode ser sequenciada com outras atualizações e não é um patch desinstalável. Para obter informações sobre como aplicar um pacote de patch de atualização principal a um pacote do Windows Installer, confira Como aplicar atualizações principais aplicando patch na instalação local do produto. A aplicação de uma atualização principal usando um pacote de patch não é recomendada. Em vez disso, aplique atualizações principais instalando o produto completo.

Observação

Se um aplicativo estiver instalado no contexto de instalação por usuário, qualquer atualização principal no aplicativo também deverá ser executada usando o contexto por usuário. Se um aplicativo estiver instalado no contexto de instalação por computador, qualquer atualização principal no aplicativo também deverá ser executada usando o contexto por computador. O Windows Installer não instalará atualizações importantes no contexto de instalação.

 

Você pode condicionar ações personalizadas sequenciadas após o InstallValidate para lidar com atualizações principais usando a propriedade UPGRADINGPRODUCTCODE:

  • Se você quiser que uma ação personalizada seja executada durante uma desinstalação do produto, mas não durante a remoção do produto por uma atualização importante, use essa condição.

    REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE

  • Se você quiser que uma ação personalizada seja executada somente durante uma atualização principal, use essa condição.

    UPGRADINGPRODUCTCODE