Acción MigrateFeatureStates
La acción MigrateFeatureStates se usa durante la actualización y al instalar una nueva aplicación en una aplicación relacionada. MigrateFeatureStates lee los estados de características de la aplicación existente y, a continuación, establece estos estados de característica en la instalación pendiente. El método solo es útil cuando el nuevo árbol de características no ha cambiado considerablemente del original.
La acción MigrateFeatureStates solo se ejecuta la primera vez que se instala el producto. La acción MigrateFeatureStates no se ejecuta durante el modo de mantenimiento ni la desinstalación.
La acción MigrateFeatureStates se ejecuta a través de cada registro de la tabla actualización de en secuencia y compara el código de actualización, la versión del producto y el idioma de cada fila con todos los productos instalados en el sistema. Si la acción MigrateFeatureStates detecta una correspondencia y si la marca de bits msidbUpgradeAttributesMigrateFeatures está establecida en la columna Atributos de la tabla Upgrade, el instalador consulta los estados de características existentes para el producto y establece estos estados para las mismas características de la nueva aplicación. La acción solo migra los estados de características si no se establece la propiedadpreseleccionada.
Restricciones de secuencia
La acción MigrateFeatureStates debe aparecer inmediatamente después de la acción CostFinalize. MigrateFeatureStates debe secuenciarse tanto en la tabla InstallUISequence de como en la tabla InstallEXecuteSequence y en la tabla InstallExecuteSequence. El instalador impide que MigrateFeatureStates se ejecute en InstallExecuteSequence si la acción ya se ha ejecutado en InstallUISequence.
Mensajes actionData
MigrateFeatureSettings envía un mensaje de datos de acción para cada producto.
Observaciones
Si más de un producto instalado comparte una característica, el estado de instalación de esa característica puede diferir entre los productos. La acción MigrateFeatureState usa el siguiente orden de prioridad al migrar estados de instalación de características: ejecutar local, ejecutar desde el origen, anunciar y desinstalar. Por ejemplo, el producto instalado A puede tener la característica Y como INSTALLSTATE_LOCAL y el producto B instalado puede tener la característica Y como INSTALLSTATE_ABSENT. Si una actualización instala el producto C y migra el estado de instalación de la característica Y, MigrateFeatureState establece el estado de instalación de la característica Y en el producto C en INSTALLSTATE_LOCAL.
Para obtener más información sobre cómo usar la acción MigrateFeatureStates para las actualizaciones de productos, vea Preparar una aplicación para futuras actualizaciones principales.