ICE38

ICE38 valide que chaque composant en cours d’installation 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 Component.

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 indiqué.

Erreur ICE38 Description
Le composant Composant1 s’installe dans le profil utilisateur. Il doit utiliser une clé de Registre sous HKCU comme keyPath, et non un fichier. La valeur de la colonne Attributes de Composant1 est 0, ce qui signifie que le composant doit utiliser un fichier comme keyPath. Cela pose des difficultés lorsque plusieurs utilisateurs installent le composant sur le même ordinateur. Pour corriger cette erreur sur Composant1, définissez le bit RegistryKeyPath dans la colonne attributs de la table Component et remplacez l’entrée de la colonne keyPath par une valeur indiquée dans la colonne Registry de la table Registry.
Le composant COMPONENT2 s’installe dans le profil utilisateur. Il doit utiliser une clé de Registre sous HKCU comme keyPath. KeyPath est actuellement NULL. COMPONENT2 a le bit RegistryKeyPath défini dans la colonne attributs de la table des composants. Le champ keyPath doit donc contenir une clé pour la colonne Registry de la table Registry , mais la colonne keyPath a la valeur null. Pour corriger cette erreur, remplacez la valeur keyPath par une entrée valide dans la table Registry.
Le composant Component3 s’installe dans le profil utilisateur. Sa clé de Registre keyPath doit être sous HKCU. Component3 a le bit RegistryKeyPath défini dans la colonne attributs de la table de composants , mais la racine de l’entrée de Registre spécifiée dans la colonne racine de la table du Registre spécifie HKEY _ local _ machine au lieu de HKEY _ Current _ User. Pour corriger cette erreur, utilisez une entrée de Registre valide sous HKEY _ local _ machine comme chemin d’accès au keyPath pour ce composant ou remplacez la valeur de la colonne racine de la table du Registre par-1 ou 1.
L’entrée de Registre keyPath pour le composant Component4 n’existe pas. Component4 a le bit RegistryKeyPath défini dans la colonne attributs de la table des composants , mais l’entrée dans la colonne keyPath n’existe pas dans la table du registre. Pour corriger cette erreur, ajoutez une entrée pour Reg4 à la table de Registre qui est sous HKEY _ Current _ User.
L’entrée de Registre Reg5 est définie comme le chemin d’accès du 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 que le keyPath. Cela signifie que l’entrée de Registre utilisée comme chemin d’accès de clé du composant est créée uniquement quand un autre composant a été installé. Pour corriger cette erreur, modifiez la valeur keyPath pour faire référence à une entrée de Registre qui appartient au composant, ou modifiez l’entrée de Registre pour qu’elle appartienne au composant en l’utilisant comme chemin d’accès de clé.

Table de répertoires (partielle)

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

Table des composants (partielle)

Composant Répertoire_ Attributs KeyPath
Composant1 Dir1 0 Fichier1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
Component5 Dir5 4 Reg5

Table du Registre (partielle)

Registre Root Valeur Composant_
Reg3 2 Component3
Reg5 0 Component4

Référence ICE