ICE69

ICE69 vérifie que toutes les sous-chaînes de la forme [ $componentkey ] dans une chaîne mise en forme ne font pas référence à des composants. Une référence entre composants se produit lorsque la [ ] propriété $componentkey d’une chaîne mise en forme fait référence à un composant autre que le composant stocké dans la _ colonne composant de vos tables.

Les problèmes de référencement entre composants proviennent de la façon dont les chaînes mises en forme sont évaluées. Si le composant référencé avec la [ propriété $componentkey ] est déjà installé et n’est pas modifié pendant l’installation actuelle (par exemple, s’il est réinstallé, déplacé vers la source, etc.), l’expression [ $componentkey ] prend la valeur null, car l’état d’action du composant dans [ $componentkey ] est null. Des problèmes similaires peuvent se produire pendant les opérations de mise à niveau et de réparation.

Résultats

ICE69 retourne une erreur si un [ $componentkey ] sous-chaîne d’une chaîne mise en forme fait référence à un composant d’une autre fonctionnalité. ICE69 retourne un avertissement si un [ $componentkey ] sous-chaîne d’une chaîne mise en forme fait référence à un composant dans la même fonctionnalité. (La table FeatureComponents est utilisée pour déterminer ce mappage. Elle doit être mappée à la même fonctionnalité pour l’avertissement. Le fait de référencer des composants dans des fonctionnalités parentes ou de référencer des composants dans des fonctionnalités enfants est considéré comme une erreur.)

ICE69 signale une erreur si la [ # ] sous-chaîne FileKey dans une chaîne mise en forme fait référence à un fichier qui n’est pas spécifié dans la table de fichiers comme appartenant au même composant.

Exemple

ICE69 signale les éléments suivants pour les exemples indiqués.

WARNING: "Mismatched component reference. Entry 'Test' of the Shortcut table belongs to component 'QuickTest'. However, the formatted string in column 'Argument' references component 'Test'. Components are in the same feature."
ERROR: "Mismatched component reference. Entry 'Shortcut2' of the Shortcut table belongs to component 'QuickTest'. However, the formatted string in column 'Argument' references component 'Test2'. Components are not in the same feature."

Pour corriger cette erreur, ne faites pas référence à des composants. Modifiez le [ $componentkey ] pour qu’il corresponde au composant du raccourci.

Table de raccourcis (partielle)

Raccourci Composant_ Argument
Test QuickTest $Test-v []
Shortcut2 QuickTest [$Test 2]

Les tables de verbes et d' Extensions sont des cas spéciaux dans le cas où la table de verbes fait référence à une extension qui appartient à un composant. Toutefois, une extension peut appartenir à plusieurs composants, car la clé primaire de la table d’extension est constituée des colonnes d’extension et de composant _ . Vous pouvez logiquement avoir la situation suivante.

Table de verbes (partielle)

Extension Verbe_ Argument
TST ouvert -v [ $COMP 1 ] [ $COMP 2]

Table d’extension (partielle)

Extension Composant_
TST COMP1
TST COMP2

Table FeatureComponents

Fonctionnalité_ Composant_
Feature1 QuickTest
Feature1 Test
Feature2 Test 2

Dans ce cas, vous devez vous assurer qu’au moins une des [ Propriétés de $componentkey ] correspond à une valeur non null. Toutefois, chaque [ ] propriété $componentkey dans la colonne argument de la table de verbes ( [ $comp 1 ] et [ $COMP 2 ] dans l’exemple ci-dessus) doit référencer un composant possible inclus avec l’extension associée au verbe. Une référence comme [ $COMP 3 ] génère un avertissement à partir de ICE69.

La table AppID présente une situation similaire à celle de la table de verbes. Elle utilise la table de classe pour sa référence de composant. Dans ce cas, la table AppId est validée de la même façon que la validation Verb-Extension (désormais AppId-Class).

La colonne argument de la table de classes est validée comme le raccourci, le registreet les tables similaires.

Table utilisée lors de l’exécution (uniquement si elle est trouvée)

IniFile

RemoveIniFile

Registre

RemoveRegistry

ServiceControl

ServiceInstall

Raccourci

Verb

Extension

Classe

AppId

Environment

Référence ICE