Akce MigrateFeatureStates
Akce MigrateFeatureStates se používá při upgradu a při instalaci nové aplikace přes související aplikaci. Funkce MigrateFeatureStates přečte stavy funkcí v existující aplikaci a potom nastaví tyto stavy funkcí v čekající instalaci. Metoda je užitečná pouze v případech, kdy se nový strom funkcí výrazně nezměnil z původního stromu.
Akce MigrateFeatureStates se spustí pouze při první instalaci produktu. Akce MigrateFeatureStates se nespustí během režimu údržby nebo odinstalace.
Akce MigrateFeatureStates prochází každý záznam tabulky Upgrade postupně a porovnává kód upgradu, verzi produktu a jazyk v každém řádku se všemi produkty nainstalovanými v systému. Pokud akce MigrateFeatureStates zjistí korespondenci a pokud je příznak bitu MsidbUpgradeAttributesMigrateFeatures nastaven ve sloupci Atributy tabulky Upgrade, instalační program se dotazuje na stávající stavy funkcí pro produkt a nastaví tyto stavy pro stejné funkce v nové aplikaci. Akce migruje pouze stavy funkce, pokud není nastavena vlastnost Předem vybraná.
Omezení posloupnosti
Akce MigrateFeatureStates by měla být okamžitě po akci CostFinalize. Funkce MigrateFeatureStates musí být sekvencována v tabulce InstallUISequence i v tabulce InstallExecuteSequence. Instalační program zabraňuje spuštění MigrateFeatureStates v InstallExecuteSequence, pokud akce již byla spuštěna v InstallUISequence.
Zprávy ActionData
MigrateFeatureSettings odešle zprávu s daty akce pro každý produkt.
Poznámky
Pokud funkci sdílí více než jeden nainstalovaný produkt, může se stav instalace této funkce mezi produkty lišit. Akce MigrateFeatureState používá při migraci stavů instalace funkcí následující pořadí priorit: spustit místní, spustit ze zdroje, inzerovat a odinstalovat. Například nainstalovaný produkt A může mít funkci Y jako INSTALLSTATE_LOCAL a nainstalovaný produkt B může mít funkci Y jako INSTALLSTATE_ABSENT. Pokud upgrade nainstaluje produkt C a migruje stav instalace funkce Y, MigrateFeatureState nastaví stav instalace funkce Y v produktu C na INSTALLSTATE_LOCAL.
Další informace o použití akce MigrateFeatureStates pro upgrady produktů naleznete v tématu Příprava aplikace pro budoucí hlavní upgrady.