Ação MigrateFeatureStates
A ação MigrateFeatureStates é usada durante a atualização e a instalação de um novo aplicativo em um aplicativo relacionado. MigrateFeatureStates lê os estados de recurso no aplicativo existente e, em seguida, define esses estados de recurso na instalação pendente. O método só é útil quando a nova árvore de recursos não mudou muito em relação ao original.
A ação MigrateFeatureStates só é executada na primeira vez 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 em cada registro da tabela Atualização em sequência e compara o código de atualização, a versão do produto e o idioma em cada linha com todos os produtos instalados no sistema. Se a ação MigrateFeatureStates detetar uma correspondência e se o sinalizador de bit msidbUpgradeAttributesMigrateFeatures estiver definido na coluna Atributos da tabela Upgrade, o instalador consultará os estados de recurso existentes para o produto e definirá esses estados para os mesmos recursos no novo aplicativo. A ação só migra os estados do recurso se a propriedade Preselected 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 no da tabela InstallUISequence do 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.
Comentários
Se mais de um produto instalado compartilhar um recurso, o estado de instalação desse recurso pode diferir 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 a partir da origem, anunciado e desinstalado. Por exemplo, o produto instalado A pode ter o recurso Y como INSTALLSTATE_LOCAL e o produto instalado B 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 como INSTALLSTATE_LOCAL.
Para obter mais informações sobre como usar a ação MigrateFeatureStates para atualizações de produtos, consulte Preparando um aplicativo para futuras atualizações principais.