Azione MigrateFeatureStates
L'azione MigrateFeatureStates viene usata durante l'aggiornamento e durante l'installazione di una nuova applicazione su un'applicazione correlata. MigrateFeatureStates legge gli stati di funzionalità nell'applicazione esistente e quindi imposta questi stati di funzionalità nell'installazione in sospeso. Il metodo è utile solo quando la nuova struttura ad albero delle funzionalità non è stata notevolmente modificata rispetto all'originale.
L'azione MigrateFeatureStates viene eseguita solo la prima volta che viene installato il prodotto. L'azione MigrateFeatureStates non viene eseguita durante la modalità di manutenzione o la disinstallazione.
L'azione MigrateFeatureStates viene eseguita in ogni record della tabella Upgrade in sequenza e confronta il codice di aggiornamento, la versione del prodotto e la lingua in ogni riga con tutti i prodotti installati nel sistema. Se l'azione MigrateFeatureStates rileva una corrispondenza e se il flag di bit msidbUpgradeAttributesMigrateFeatures è impostato nella colonna Attributi della tabella Aggiorna, il programma di installazione esegue una query sugli stati di funzionalità esistenti per il prodotto e imposta questi stati per le stesse funzionalità nella nuova applicazione. L'azione esegue la migrazione solo degli stati della funzionalità se la proprietà Preselected non è impostata .
Restrizioni della sequenza
L'azione MigrateFeatureStates deve venire immediatamente dopo l'azione CostFinalize. MigrateFeatureStates deve essere sequenziato sia nella tabella InstallUISequence che nella tabella InstallExecuteSequence. Il programma di installazione impedisce l'esecuzione di MigrateFeatureStates in InstallExecuteSequence se l'azione è già stata eseguita in InstallUISequence.
Messaggi ActionData
MigrateFeatureSettings invia un messaggio di dati azione per ogni prodotto.
Commenti
Se più prodotti installati condividono una funzionalità, lo stato di installazione per tale funzionalità può differire tra i prodotti. L'azione MigrateFeatureState usa l'ordine di precedenza seguente durante la migrazione degli stati di installazione delle funzionalità: eseguire localmente, eseguire dall'origine, annunciare e disinstallare. Ad esempio, il prodotto A installato può avere funzionalità Y come INSTALLSTATE_LOCAL e il prodotto B installato può avere la funzionalità Y come INSTALLSTATE_ABSENT. Se un aggiornamento installa il prodotto C ed esegue la migrazione dello stato di installazione della funzionalità Y, MigrateFeatureState imposta lo stato di installazione della funzionalità Y nel prodotto C su INSTALLSTATE_LOCAL.
Per altre informazioni su come usare l'azione MigrateFeatureStates per gli aggiornamenti del prodotto, vedere Preparazione di un'applicazione per gli aggiornamenti principali futuri.