ICE38

ICE38 verifica che ogni componente installato nel profilo dell'utente corrente specifichi anche una chiave del Registro di sistema nella radice HKEY_CURRENT_USER nella colonna KeyPath della tabella Component.

Risultato

ICE38 genera un errore se un componente installato nel profilo dell'utente non specifica una chiave del Registro di sistema HKCU.

Esempio

ICE38 segnala gli errori seguenti per l'esempio illustrato.

Errore ICE38 Descrizione
Component Component1 viene installato nel profilo utente. Deve usare una chiave del Registro di sistema in HKCU come KeyPath, non come file. Il valore della colonna attributi di Component1 è 0, vale a dire che il componente deve usare un file come KeyPath. Ciò causa difficoltà quando più utenti installano il componente nello stesso computer. Per correggere l'errore in Component1, impostare il bit RegistryKeyPath nella colonna Attributi della tabella Component e modificare la voce nella colonna KeyPath su un valore elencato nella colonna Registro di sistema della tabella Registro di sistema.
Component Component2 viene installato nel profilo utente. Deve usare una chiave del Registro di sistema in HKCU come KeyPath. KeyPath è attualmente NULL. Component2 ha il bit RegistryKeyPath impostato nella colonna Attributi della tabella Component. Il campo KeyPath deve pertanto contenere una chiave per la colonna Registro di sistema della tabella del Registro di sistema, ma la colonna KeyPath è Null. Per correggere questo errore, modificare il valore di KeyPath impostando una voce valida nella tabella del Registro di sistema.
Component Component3 viene installato nel profilo utente. La chiave del Registro di sistema KeyPath deve rientrare in HKCU. Component3 include il bit RegistryKeyPath impostato nella colonna Attributi della tabella Component , ma la radice della voce del Registro di sistema specificata nella colonna Radice della tabella Del Registro di sistema specifica HKEY_LOCAL_MACHINE anziché HKEY_CURRENT_USER. Per correggere questo errore, usare una voce valida del Registro di sistema in HKEY_LOCAL_MACHINE come KeyPath per questo componente o modificare il valore nella colonna Radice della tabella del Registro di sistema su -1 o 1.
La voce del Registro di sistema KeyPath per component Component4 non esiste. Component4 ha il bit RegistryKeyPath impostato nella colonna Attributi della tabella Component , ma la voce nella colonna KeyPath non esiste nella tabella del Registro di sistema. Per correggere questo errore, aggiungere una voce per Reg4 alla tabella del Registro di sistema che è un oggetto in HKEY_CURRENT_USER.
La voce del Registro di sistema Reg5 è impostata come KeyPath per component5, ma tale voce del Registro di sistema non appartiene a Component5. La voce del Registro di sistema a cui si fa riferimento nella colonna KeyPath del componente è stata trovata e si trova sotto l'albero HKCU, ma la colonna Component_ della voce del Registro di sistema non fa riferimento allo stesso componente che lo ha elencato come KeyPath. Ciò significa che la voce del Registro di sistema utilizzata come KeyPath del componente verrebbe creata solo quando è stato installato un altro componente. Per correggere questo errore, modificare il valore di KeyPath in modo che faccia riferimento a una voce del Registro di sistema appartenente al componente oppure modificare la voce del Registro di sistema in modo che appartenga al componente utilizzandola come KeyPath.

 

Tabella directory (parziale)

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

 

Tabella dei componenti (parziale)

Componente Directory_ Attributi KeyPath
Componente1 Dir1 0 File1
Componente2 Dir2 4
Componente3 Dir3 4 Reg3
Componente4 Dir4 4 Reg4
Componente5 Dir5 4 Reg5

 

Tabella del Registro di sistema (parziale)

Registro Root Valore Componente_
Reg3 2 Componente3
Reg5 0 Componente4

 

Riferimento ICE