ICE62
ICE62 effectue des vérifications approfondies sur la table IsolatedComponent pour les données susceptibles d’entraîner un comportement inattendu.
L’échec de correction d’une erreur signalée par ICE62 peut entraîner une défaillance du système de composants isolé de différentes façons. Par exemple, si le bit SharedDllRefCount n’est pas défini pour un composant partagé, l’inscription du composant peut être supprimée lorsqu’une autre application utilise ce ComponentId et est désinstallée.
Résultat
ICE62 publie un avertissement ou une erreur lorsqu’il trouve des données dans la table IsolatedComponent susceptible de produire un comportement inattendu.
Exemple
ICE62 signale les erreurs et avertissements suivants pour les exemples présentés.
The component 'Component2' is listed as an isolated application
component in the IsolatedComponent table, but the key path is not a file.
Component2 est répertorié comme composant d’application pour l’isolation du composant1. Toutefois, Component2 possède un chemin de clé de Registre et ne fournit pas de chemin d’accès exécutable valide à utiliser pour isoler le composant.
Pour corriger cette erreur, utilisez un autre composant comme application pour le composant isolé Component1.
The component 'Component1' is listed as an isolated shared component in the
IsolatedComponent table, but is not marked with the SharedDllRefCount component attribute.
Component1 est répertorié en tant que composant partagé isolé, mais n’a pas le jeu de bits SharedDllRefCount. Cela peut entraîner une durée de vie incorrecte du composant. Si une autre application utilise ce composant (isolé ou non) et est désinstallée, l’inscription du composant est supprimée, mais la copie isolée de cette application reste. Cela provoque des problèmes de réparation et de désinstallation.
Pour corriger cette erreur, définissez le bit SharedDllRefCount pour le composant.
The isolated shared component 'Component1' is not installed by the same feature as
(or a parent feature of) its isolated application component 'Component2' (which is installed by feature 'Feature2').
Component1 et Component2 sont installés par différentes fonctionnalités. Component1 est installé par Feature1 et Component2 est installé par Feature2. Feature1 n’est pas un parent de Feature2. Il est donc possible que l’application soit installée, mais pas le composant isolé, ce qui interrompt l’isolation.
Pour corriger cette erreur, ajoutez une entrée à la table FeatureComponents liant Component1 à la même fonctionnalité que (ou une fonctionnalité parente de) la fonctionnalité qui installe Component2.
WARNING: The isolated shared component 'Component1' (referenced in the IsolatedComponent table)
is conditionalized. Isolated shared component conditions should never change from TRUE to FALSE after the first install of the product.
Component1 a une condition dans la table Composant. Si cette condition passe de TRUE à FALSE pendant la durée de vie d’une installation sur un ordinateur, le composant isolé peut être orphelin sans informations d’inscription.
Pour corriger cet avertissement, supprimez la condition ou créez la condition afin qu’elle ne puisse jamais passer de TRUE à FALSE.
WARNING: The isolated shared component 'Component1' is shared by multiple applications
(including 'Component2') that are installed to the directory 'TARGETDIR'.
WARNING: The isolated shared component 'Component1' is shared by multiple applications
(including 'Component3') that are installed to the directory 'TARGETDIR'.
Component1 est isolé pour Component2 et Component3, et les deux composants sont également installés dans le même répertoire. Les applications partagent un composant isolé, mais si une application est supprimée, le composant partagé est supprimé et entraîne la perte du composant isolé par les autres applications.
Pour corriger cet avertissement, installez les applications dans différents répertoires ou vérifiez si certaines des applications nécessitent réellement un composant isolé.
Component_Shared | Component_Application |
---|---|
Component1 | Composant2 |
Component1 | Component3 |
Composant | ComponentId | Répertoire_ | Attributs | Condition | KeyPath |
---|---|---|---|---|---|
Component1 | Dir1 | 0 | MYCONDITION | Fichier1 | |
Composant2 | TARGETDIR | 4 | Registre2 | ||
Component3 | TARGETDIR | 0 | Fichier3 |
Caractéristique_ | Composant_ |
---|---|
Feature1 | Component1 |
Feature2 | Composant2 |
Feature1 | Component3 |
table de fonctionnalités (partielle)
Caractéristique | Feature_Parent |
---|---|
Feature1 | |
Feature2 |
Rubriques connexes