ICE62

ICE62 effectue des vérifications approfondies sur la table IsolatedComponent pour déterminer si celle-ci contient des données susceptibles de provoquer un comportement inattendu.

Le fait de ne pas corriger une erreur signalée par ICE62 peut entraîner une défaillance du système de composants isolés de diverses 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 quand une autre application utilise ce ComponentId et est désinstallée.

Résultats

ICE62 publie un avertissement ou une erreur quand il trouve des données dans la table IsolatedComponent qui peuvent engendrer un comportement inattendu.

Exemple

ICE62 signale les erreurs et avertissements suivants pour les exemples illustré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 listé en tant que composant d’application pour l’isolation de component1. Toutefois, Component2 a un chemin de clé de Registre et ne fournit pas de chemin d’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 listé en tant que composant partagé isolé, mais n’a pas le bit SharedDllRefCount défini. Cela peut entraîner une durée de vie incorrecte du composant. Si une autre application utilise ce composant (isolé ou non) et qu’elle est désinstallée, l’inscription du composant est supprimée, mais la copie isolée de cette application reste. Cela entraîne 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 par Feature2. Feature1 n’étant pas un parent de Feature2, il est possible que l’application soit installée, mais pas le composant isolé, ce qui rompt l’isolation.

Pour corriger cette erreur, ajoutez une entrée à la table FeatureComponents qui lie 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 Component. 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é l’est également, ce qui 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 applications nécessitent vraiment un composant isolé.

Table IsolatedComponent

Component_Shared Component_Application
Component1 Composant2
Composant1 Composant3

 

Table Component

Composant ComponentId Directory_ Attributs Condition KeyPath
Component1 Dir1 0 MYCONDITION Fichier1
Composant2 TARGETDIR 4 Registry2
Composant3 TARGETDIR 0 Fichier3

 

FeatureComponentsTable

Feature_ Component_
Feature1 Component1
Feature2 Composant2
Feature1 Composant3

 

Table Feature (partielle)

Fonctionnalité Feature_Parent
Feature1
Feature2

 

Référence ICE