MigrateFeatureStates作
MigrateFeatureStates作在升级期间以及通过相关应用程序安装新应用程序时使用。 MigrateFeatureStates 读取现有应用程序中的功能状态,然后在挂起的安装中设置这些功能状态。 仅当新功能树未从原始树发生重大更改时,该方法才有用。
MigrateFeatureStates作仅在首次安装产品时运行。 MigrateFeatureStates作不会在维护模式或卸载期间运行。
MigrateFeatureStates作按顺序运行 升级表的每个记录,并将每行中的升级代码、产品版本和语言与系统上安装的所有产品进行比较。 如果 MigrateFeatureStates作检测到对应,并且 msidbUpgradeAttributesMigrateFeatures 位标志在升级表的属性列中设置,安装程序将查询产品的现有功能状态,并为新应用程序中的相同功能设置这些状态。 如果未设置 预选 属性,该作只会迁移功能状态。
序列限制
MigrateFeatureStates作应在 CostFinalize作之后立即执行。 MigrateFeatureStates 必须在 InstallUISequence 表 和 InstallExecuteSequence 表中进行排序。 如果作已在 InstallUISequence 中运行,安装程序将阻止 MigrateFeatureStates 在 InstallExecuteSequence 中运行。
ActionData 消息
MigrateFeatureSettings 为每个产品发送作数据消息。
言论
如果多个已安装的产品共享一项功能,则该功能的安装状态在产品之间可能有所不同。 MigrateFeatureState作在迁移功能安装状态时使用以下优先顺序:运行本地、从源运行、播发和卸载。 例如,已安装的产品 A 可能有功能 Y 作为INSTALLSTATE_LOCAL,并且已安装的产品 B 可能具有功能 Y 作为INSTALLSTATE_ABSENT。 如果升级安装产品 C 并迁移功能 Y 的安装状态,MigrateFeatureState 会将产品 C 中的功能 Y 的安装状态设置为INSTALLSTATE_LOCAL。
有关如何使用 MigrateFeatureStates作进行产品升级的详细信息,请参阅 为将来的主要升级准备应用程序。