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 |