Tindakan MigrateFeatureStates

Tindakan MigrateFeatureStates digunakan selama peningkatan dan saat menginstal aplikasi baru melalui aplikasi terkait. MigrateFeatureStates membaca status fitur di aplikasi yang ada lalu mengatur status fitur ini dalam penginstalan yang tertunda. Metode ini hanya berguna ketika pohon fitur baru tidak banyak berubah dari aslinya.

Tindakan MigrateFeatureStates hanya berjalan saat pertama kali produk diinstal. Tindakan MigrateFeatureStates tidak berjalan selama mode pemeliharaan atau penghapusan instalasi.

Tindakan MigrateFeatureStates berjalan melalui setiap rekaman tabel Peningkatan secara berurutan dan membandingkan kode peningkatan, versi produk, dan bahasa di setiap baris dengan semua produk yang diinstal pada sistem. Jika tindakan MigrateFeatureStates mendeteksi korespondensi, dan jika bendera bit msidbUpgradeAttributesMigrateFeatures diatur di kolom Atribut tabel Peningkatan, alat penginstal meminta status fitur yang ada untuk produk dan mengatur status ini untuk fitur yang sama di aplikasi baru. Tindakan hanya memigrasikan status fitur jika properti Yang Dipilih sebelumnya tidak diatur.

Pembatasan Urutan

Tindakan MigrateFeatureStates akan segera datang setelah tindakan CostFinalize. MigrateFeatureStates harus diurutkan dalam tabel InstallUISequence dan tabel InstallExecuteSequence. Alat penginstal mencegah MigrateFeatureStates berjalan di InstallExecuteSequence jika tindakan telah berjalan di InstallUISequence.

Pesan ActionData

MigrateFeatureSettings mengirimkan pesan data tindakan untuk setiap produk.

Keterangan

Jika lebih dari satu produk yang diinstal berbagi fitur, status penginstalan untuk fitur tersebut mungkin berbeda di antara produk. Tindakan MigrateFeatureState menggunakan urutan prioritas berikut saat memigrasikan status penginstalan fitur: jalankan lokal, jalankan dari sumber, iklan, dan hapus instalan. Misalnya, produk yang diinstal A mungkin memiliki fitur Y sebagai INSTALLSTATE_LOCAL dan produk yang diinstal B mungkin memiliki fitur Y sebagai INSTALLSTATE_ABSENT. Jika peningkatan menginstal produk C dan memigrasikan status penginstalan fitur Y, MigrateFeatureState menetapkan status penginstalan fitur Y di produk C ke INSTALLSTATE_LOCAL.

Untuk informasi selengkapnya tentang cara menggunakan tindakan MigrateFeatureStates untuk peningkatan produk, lihat Menyiapkan Aplikasi untuk Peningkatan Utama Di Masa Mendatang.