ICE38

ICE38 vérifie que chaque composant installé sous le profil de l’utilisateur actuel spécifie également une clé de registre sous la racine HKEY\_CURRENT\_USER dans la colonne KeyPath de la table Composants.

Résultats

ICE38 publie une erreur si un composant installé sous le profil de l’utilisateur ne spécifie pas de clé de Registre HKCU.

Exemple

ICE38 signale les erreurs suivantes pour l’exemple présenté.

Erreur ICE38 Description
Le composant Component1 s’installe sur le profil utilisateur. Il doit utiliser une clé de Registre sous HKCU comme KeyPath, et non un fichier. La valeur de la colonne d’attributs de Component1 est 0, ce qui signifie que le composant doit utiliser un fichier comme KeyPath. Cela entraîne des difficultés lorsque plusieurs utilisateurs installent le composant sur le même ordinateur. Pour corriger cette erreur sur Component1, définissez le paramètre RegistryKeyPath dans la colonne Attributs de la table Composants et remplacez l’entrée dans la colonne KeyPath par une valeur répertoriée dans la colonne Registres de la table Registres.
Le composant Component2 s’installe sur le profil utilisateur. Il doit utiliser une clé de Registre sous HKCU comme KeyPath. KeyPath est actuellement nul. Component2 a le paramètre RegistryKeyPath activé dans la colonne Attributs de la table Composants. Le champ KeyPath doit donc contenir une clé de la colonne Registres de la table Registres, mais la colonne KeyPath a une valeur nulle. Pour corriger cette erreur, remplacez la valeur KeyPath par une entrée valide dans la table Registres.
Le composant Component3 s’installe sur le profil utilisateur. La clé de Registre KeyPath doit appartenir à HKCU. Component3 a le paramètre RegistryKeyPath défini dans la colonne Attributs de la table Composants, mais la racine de l’entrée de registre spécifiée dans la colonne Racine de la table Registry spécifie HKEY_LOCAL_MACHINE plutôt que HKEY_CURRENT_USER. Pour corriger cette erreur, utilisez une entrée de Registre valide sous HKEY_LOCAL_MACHINE comme KeyPath pour ce composant ou remplacez la valeur dans la colonne Racine de la table Registre par -1 ou 1.
L’entrée de Registre KeyPath pour le composant Component4 n’existe pas. Component4 a le paramètre RegistryKeyPath défini dans la colonne Attributs de la table Composants, mais l’entrée dans la colonne KeyPath n’existe pas dans la table Registre. Pour corriger cette erreur, ajoutez une entrée pour Reg4 à la table du Registre qui se trouve sous HKEY_CURRENT_USER.
L’entrée de Registre Reg5 est définie en tant que KeyPath pour le composant Component5, mais cette entrée de registre n’appartient pas à Component5. L’entrée de registre référencée dans la colonne KeyPath du composant a été trouvée et se trouve sous l’arborescence HKCU, mais la colonne Component_ de l’entrée de registre ne fait pas référence au même composant qui l’a répertoriée sous le nom KeyPath. Cela signifie que l’entrée de registre utilisée comme KeyPath du composant n’est créée que lorsqu’un autre composant a été installé. Pour corriger cette erreur, modifiez la valeur KeyPath pour qu’elle fasse référence à une entrée de registre appartenant au composant, ou modifiez l’entrée de registre en l’utilisant comme KeyPath pour qu’elle appartienne au composant.

 

Table Répertoire (partielle)

Répertoire Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

Table Composants (partielle)

Composant Directory_ Attributs KeyPath
Component1 Dir1 0 Fichier1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
Component5 Dir5 4 Reg5

 

Table Registry (partielle)

Registre Root Valeur Component_
Reg3 2 Component3
Reg5 0 Component4

 

Référence ICE