MigrateFeatureStates-åtgärd
Åtgärden MigrateFeatureStates används under uppgraderingen och när du installerar ett nytt program i ett relaterat program. MigrateFeatureStates läser funktionstillstånden i det befintliga programmet och anger sedan dessa funktionstillstånd i den väntande installationen. Metoden är bara användbar när det nya funktionsträdet inte har ändrats avsevärt från originalet.
Åtgärden MigrateFeatureStates körs bara första gången produkten installeras. Åtgärden MigrateFeatureStates körs inte under underhållsläge eller avinstallation.
Åtgärden MigrateFeatureStates körs genom varje post i tabellen Upgrade i följd och jämför uppgraderingskoden, produktversionen och språket på varje rad med alla produkter som är installerade i systemet. Om åtgärden MigrateFeatureStates identifierar en korrespondens, och om bitflaggan msidbUpgradeAttributesMigrateFeatures anges i kolumnen Attribut i tabellen Uppgradera, frågar installationsprogrammet de befintliga funktionstillstånden för produkten och anger dessa tillstånd för samma funktioner i det nya programmet. Åtgärden migrerar bara funktionstillstånden om egenskapen Förmarkerad inte har angetts.
Sekvensbegränsningar
Åtgärden MigrateFeatureStates bör komma omedelbart efter åtgärden CostFinalize. MigrateFeatureStates måste sekvenseras i både tabellen InstallUISequence och tabellen InstallExecuteSequence. Installationsprogrammet förhindrar att MigrateFeatureStates körs i InstallExecuteSequence om åtgärden redan har körts i InstallUISequence.
ActionData-meddelanden
MigrateFeatureSettings skickar ett åtgärdsdatameddelande för varje produkt.
Anmärkningar
Om fler än en installerad produkt delar en funktion kan installationstillståndet för den funktionen skilja sig åt mellan produkterna. Åtgärden MigrateFeatureState använder följande prioritetsordning vid migrering av funktionsinstallationstillstånd: kör lokalt, kör från källa, annonserade och avinstallerade. Till exempel kan installerad produkt A ha funktionen Y som INSTALLSTATE_LOCAL och installerad produkt B kan ha funktionen Y som INSTALLSTATE_ABSENT. Om en uppgradering installerar produkt C och migrerar installationstillståndet för funktion Y anger MigrateFeatureState installationstillståndet för funktion Y i produkt C till INSTALLSTATE_LOCAL.
Mer information om hur du använder åtgärden MigrateFeatureStates för produktuppgraderingar finns i Förbereda ett program för framtida större uppgraderingar.