MigrateFeatureStates アクション
MigrateFeatureStates アクションは、アップグレード中と、関連アプリケーション経由で新しいアプリケーションをインストールするときに使用されます。 MigrateFeatureStates は、既存のアプリケーションの機能状態を読み取り、保留中のインストールでこれらの機能の状態を設定します。 このメソッドは、新しい機能ツリーが元の機能ツリーから大幅に変更されていない場合にのみ役立ちます。
MigrateFeatureStates アクションは、製品が初めてインストールされたときにのみ実行されます。 MigrateFeatureStates アクションは、メンテナンス モードまたはアンインストール中に実行されません。
MigrateFeatureStates アクションは、アップグレード テーブル の各レコードを順番に実行し、各行のアップグレード コード、製品バージョン、言語をシステムにインストールされているすべての製品と比較します。 MigrateFeatureStates アクションが対応を検出し、アップグレード テーブルの Attributes 列に msidbUpgradeAttributesMigrateFeatures ビット フラグが設定されている場合、インストーラーは製品の既存の機能状態を照会し、これらの状態を新しいアプリケーションの同じ機能に設定します。 このアクションは、事前選択 プロパティが設定されていない場合にのみ、機能の状態を移行します。
シーケンスの制限
MigrateFeatureStates アクションは、CostFinalize アクションの直後に発生する必要があります。 MigrateFeatureStates は、InstallUISequence テーブル と InstallExecuteSequence テーブルの両方でシーケンス化する必要があります。 InstallUISequence でアクションが既に実行されている場合、インストーラーによって MigrateFeatureStates が InstallExecuteSequence で実行されなくなります。
ActionData メッセージ
MigrateFeatureSettings は、各製品のアクション データ メッセージを送信します。
備考
複数のインストール済み製品が機能を共有している場合、その機能のインストール状態は製品によって異なる場合があります。 MigrateFeatureState アクションでは、機能のインストール状態を移行するときに、ローカルでの実行、ソースからの実行、アドバタイズ、アンインストールという優先順位が使用されます。 たとえば、インストール済みの製品 A には、INSTALLSTATE_LOCALとして機能 Y があり、インストール済みの製品 B には、INSTALLSTATE_ABSENTとして機能 Y が含まれる場合があります。 アップグレードによって製品 C がインストールされ、機能 Y のインストール状態が移行される場合、MigrateFeatureState は製品 C のフィーチャー Y のインストール状態をINSTALLSTATE_LOCALに設定します。
製品のアップグレードに MigrateFeatureStates アクションを使用する方法の詳細については、「将来のメジャー アップグレードのためのアプリケーションの準備」を参照してください。