Compartilhar via


Ação MigrateFeatureStates

A ação MigrateFeatureStates é usada durante a atualização e ao instalar um novo aplicativo em um aplicativo relacionado. MigrateFeatureStates lê os estados de recurso no aplicativo existente e define esses estados de recurso na instalação pendente. O método só é útil quando a nova árvore de recursos não foi muito alterada do original.

A ação MigrateFeatureStates só é executada na primeira vez em que o produto é instalado. A ação MigrateFeatureStates não é executada durante o modo de manutenção ou desinstalação.

A ação MigrateFeatureStates é executada por cada registro da tabela de atualização em sequência e compara o código de atualização, a versão do produto e o idioma em cada linha a todos os produtos instalados no sistema. Se a ação MigrateFeatureStates detectar uma correspondência e se o sinalizador de bits msidbUpgradeAttributesMigrateFeatures for definido na coluna Atributos da tabela Atualizar, o instalador consultará os estados de recursos existentes do produto e definirá esses estados para os mesmos recursos no novo aplicativo. A ação só migrará os estados de recurso se a propriedade Preselelected não estiver definida.

Restrições de sequência

A ação MigrateFeatureStates deve vir imediatamente após a ação CostFinalize. MigrateFeatureStates deve ser sequenciado na tabela InstallUISequence e na tabela InstallExecuteSequence. O instalador impede que MigrateFeatureStates seja executado em InstallExecuteSequence se a ação já tiver sido executada em InstallUISequence.

Mensagens ActionData

MigrateFeatureSettings envia uma mensagem de dados de ação para cada produto.

Observações

Se mais de um produto instalado compartilhar um recurso, o estado de instalação desse recurso poderá ser diferente entre os produtos. A ação MigrateFeatureState usa a seguinte ordem de precedência ao migrar estados de instalação de recursos: executar local, executar de origem, anunciado e desinstalado. Por exemplo, o produto instalado A pode ter o recurso Y como INSTALLSTATE_LOCAL e o produto B instalado pode ter o recurso Y como INSTALLSTATE_ABSENT. Se uma atualização instalar o produto C e migrar o estado de instalação do recurso Y, MigrateFeatureState definirá o estado de instalação do recurso Y no produto C para INSTALLSTATE_LOCAL.

Para obter mais informações sobre como usar a ação MigrateFeatureStates para atualizações de produtos, consulte Preparando um aplicativo para atualizações principais futuras.