ICE38

ICE38 memvalidasi bahwa setiap komponen yang diinstal di bawah profil pengguna saat ini juga menentukan kunci registri di bawah akar HKEY_CURRENT_USER di kolom KeyPath dari tabel Komponen.

Hasil

ICE38 memposting kesalahan jika komponen yang diinstal di bawah profil pengguna tidak menentukan kunci registri HKCU.

Contoh

ICE38 melaporkan kesalahan berikut untuk sampel yang ditampilkan.

Kesalahan ICE38 Deskripsi
Komponen Component1 diinstal ke profil pengguna. Ini harus menggunakan kunci registri di bawah HKCU sebagai KeyPath-nya, bukan file. Nilai kolom atribut Component1 adalah 0, yang berarti bahwa komponen harus menggunakan file sebagai KeyPath-nya. Ini menyebabkan kesulitan ketika beberapa pengguna menginstal komponen pada komputer yang sama. Untuk memperbaiki kesalahan ini pada Component1, atur bit RegistryKeyPath di kolom Atribut tabel Komponen dan ubah entri di kolom KeyPath ke nilai yang tercantum di kolom Registri dari tabel Registri.
Komponen Component2 diinstal ke profil pengguna. Ini harus menggunakan kunci registri di bawah HKCU sebagai KeyPath-nya. KeyPath saat ini NULL. Component2 memiliki bit RegistryKeyPath yang diatur di kolom Atribut tabel Komponen. Oleh karena itu, bidang KeyPath harus berisi kunci ke kolom Registri dari Tabel Registri tetapi kolom KeyPath null. Untuk memperbaiki kesalahan ini, ubah nilai KeyPath menjadi entri yang valid ke dalam tabel Registri.
Komponen Component3 diinstal ke profil pengguna. Kunci registri KeyPath harus berada di bawah HKCU. Component3 memiliki bit RegistryKeyPath yang diatur di kolom Atribut tabel Komponen tetapi akar entri registri yang ditentukan di kolom Akar tabel Registri menentukan HKEY_LOCAL_MACHINE daripada HKEY_CURRENT_USER. Untuk memperbaiki kesalahan ini, gunakan entri registri yang valid di bawah HKEY_LOCAL_MACHINE sebagai KeyPath untuk komponen ini atau ubah nilai di kolom Akar tabel Registri menjadi -1 atau 1.
Entri registri KeyPath untuk komponen Component4 tidak ada. Component4 memiliki bit RegistryKeyPath yang diatur di kolom Atribut tabel Komponen tetapi entri di kolom KeyPath tidak ada di Tabel Registri. Untuk memperbaiki kesalahan ini, tambahkan entri untuk Reg4 ke tabel Registri yang berada di bawah HKEY_CURRENT_USER.
Registry Entry Reg5 diatur sebagai KeyPath untuk komponen Component5, tetapi entri registri tersebut bukan milik Component5. Entri Registri yang direferensikan di kolom KeyPath komponen ditemukan dan terletak di bawah pohon HKCU, tetapi kolom Component_ entri registri tidak merujuk kembali ke komponen yang sama yang mencantumkannya sebagai KeyPath. Ini berarti bahwa entri registri yang digunakan sebagai KeyPath komponen hanya akan dibuat ketika beberapa komponen lain diinstal. Untuk memperbaiki kesalahan ini, ubah nilai KeyPath untuk merujuk ke entri registri milik komponen, atau ubah entri registri menjadi milik komponen yang menggunakannya sebagai KeyPath.

 

Tabel Direktori (parsial)

Directory Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

Tabel Komponen (parsial)

Komponen Direktori_ Atribut KeyPath
Komponen1 Dir1 0 File1
Komponen2 Dir2 4
Komponen3 Dir3 4 Reg3
Komponen4 Dir4 4 Reg4
Komponen5 Dir5 4 Reg5

 

Tabel Registri (parsial)

Registri Root Nilai Komponen_
Reg3 2 Komponen3
Reg5 0 Komponen4

 

Referensi ICE