ICE38

ICE38 verifiziert, dass jede Komponente, die unter dem Profil des aktuellen Benutzers installiert wird, auch einen Registrierungsschlüssel unter dem Stamm HKEY_CURRENT_USER in der KeyPath-Spalte der Component-Tabelle angibt.

Ergebnis

ICE38 gibt einen Fehler aus, wenn eine unter dem Profil des Benutzers installierte Komponente keinen HKCU-Registrierungsschlüssel angibt.

Beispiel

ICE38 meldet die folgenden Fehler für das gezeigte Beispiel.

ICE38-Fehler BESCHREIBUNG
Komponente Component1 wird im Benutzerprofil installiert. Sie muss einen Registrierungsschlüssel unter HKCU als KeyPath verwenden, keine Datei. Der Wert der Attributes-Spalte von Component1 ist 0, was bedeutet, dass die Komponente eine Datei als KeyPath verwenden muss. Dies führt zu Schwierigkeiten, wenn mehrere Benutzer die Komponente auf demselben Computer installieren. Um diesen Fehler für Component1 zu beheben, legen Sie das RegistryKeyPath-Bit in der Attributes-Spalte der Component-Tabelle fest, und ändern Sie den Eintrag in der KeyPath-Spalte in einen Wert, der in der Registry-Spalte der Registry-Tabelle aufgeführt ist.
Komponente Component2 wird im Benutzerprofil installiert. Sie muss einen Registrierungsschlüssel unter HKCU als KeyPath verwenden. Der KeyPath ist derzeit NULL. Für Component2 ist das RegistryKeyPath-Bit in der Attributes-Spalte der Component-Tabelle festgelegt. Das KeyPath-Feld muss daher einen Schlüssel für die Registry-Spalte der Registry-Tabelle enthalten, aber die KeyPath-Spalte ist Null. Um diesen Fehler zu beheben, ändern Sie den KeyPath-Wert in einen gültigen Eintrag in der Registry-Tabelle.
Komponente Component3 wird im Benutzerprofil installiert. Ihr KeyPath-Registrierungsschlüssel muss unter HKCU fallen. Für Component3 ist das RegistryKeyPath-Bit in der Attributes-Spalte der Component-Tabelle festgelegt, aber der Stamm des Registrierungseintrags, der in der Root-Spalte der Registry-Tabelle angegeben ist, gibt HKEY_LOCAL_MACHINE statt HKEY_CURRENT_USER an. Um diesen Fehler zu beheben, verwenden Sie einen gültigen Registrierungseintrag unter HKEY_LOCAL_MACHINE als KeyPath für diese Komponente, oder ändern Sie den Wert in der Root-Spalte der Registry-Tabelle in -1 oder 1.
Der KeyPath-Registrierungseintrag für Komponente Component4 ist nicht vorhanden. Für Component4 ist das RegistryKeyPath-Bit in der Attributes-Spalte der Component-Tabelle festgelegt, aber der Eintrag in der KeyPath-Spalte ist in der Registry-Tabelle nicht vorhanden. Um diesen Fehler zu beheben, fügen Sie der Registry-Tabelle einen Eintrag für „Reg4“ hinzu, der sich unter HKEY_CURRENT_USER befindet.
Der Registrierungseintrag „Reg5“ ist als KeyPath für Komponente Component5 festgelegt, aber dieser Registrierungseintrag gehört nicht zu Component5. Der Registrierungseintrag, auf den in der KeyPath-Spalte der Komponente verwiesen wird, wurde gefunden und befindet sich unter der HKCU-Struktur, aber die „Component_“-Spalte des Registrierungseintrags verweist nicht zurück auf dieselbe Komponente, in der er als KeyPath aufgeführt wurde. Dies bedeutet, dass der als KeyPath der Komponente verwendete Registrierungseintrag nur erstellt würde, wenn eine andere Komponente installiert wurde. Um diesen Fehler zu beheben, ändern Sie den KeyPath-Wert so, dass er auf einen Registrierungseintrag verweist, der zu der Komponente gehört, oder ändern Sie den Registrierungseintrag so, dass er zu der Komponente gehört, die ihn als KeyPath verwendet.

 

Directory-Tabelle (teilweise)

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

 

Component-Tabelle (teilweise)

Komponente Directory_ Attribute KeyPath
Component1 Dir1 0 Datei1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
Component5 Dir5 4 Reg5

 

Registry-Tabelle (teilweise)

Registrierung Root Wert Component_
Reg3 2 Component3
Reg5 0 Component4

 

ICE-Referenz