ICE62

ICE62 sucht ausführlich in der IsolatedComponent-Tabelle nach Daten, die zu unerwartetem Verhalten führen können.

Das Versäumnis der Behebung eines von ICE62 gemeldeten Fehlers kann auf verschiedenste Weisen zu einem Ausfall des isolierten Komponentensystems führen. Wenn das SharedDllRefCount-Bit beispielsweise nicht für eine freigegebene Komponente festgelegt ist, könnte die Registrierung für die Komponente entfernt werden, wenn eine andere Anwendung diese ComponentId verwendet und deinstalliert wird.

Ergebnis

ICE62 gibt eine Warnung oder einen Fehler aus, wenn Daten in der IsolatedComponent-Tabelle gefunden werden, die zu unerwartetem Verhalten führen können.

Beispiel

ICE62 meldet die folgenden Fehler und Warnungen für die gezeigten Beispiele.

The component 'Component2' is listed as an isolated application 
component in the IsolatedComponent table, but the key path is not a file.

Component2 wird als Anwendungskomponente für die Isolation von Component1 aufgeführt. Component2 verfügt jedoch über einen Registrierungsschlüsselpfad und stellt keinen gültigen ausführbaren Pfad bereit, der zum Isolieren der Komponente verwendet werden kann.

Um diesen Fehler zu beheben, verwenden Sie eine andere Komponente als Anwendung für die isolierte Komponente 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 wird als isolierte freigegebene Komponente aufgeführt, für sie ist aber das SharedDllRefCount-Bit nicht festgelegt. Dies könnte dazu führen, dass die Lebensdauer der Komponente nicht stimmt. Wenn eine andere Anwendung diese Komponente (isoliert oder nicht) verwendet und deinstalliert wird, wird die Registrierung für die Komponente entfernt, aber die isolierte Kopie dieser Anwendung bleibt erhalten. Dies führt zu Reparatur- und Deinstallationsproblemen.

Um diesen Fehler zu beheben, legen Sie das SharedDllRefCount-Bit für die Komponente fest.

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 und Component2 werden durch verschiedene Features installiert. Component1 wird von Feature1 und Component2 von Feature2 installiert. Feature1 ist kein übergeordnetes Element von Feature2, daher ist es möglich, dass die Anwendung installiert wird, nicht aber die isolierte Komponente, wodurch die Isolation beschädigt wird.

Um diesen Fehler zu beheben, fügen Sie der FeatureComponents-Tabelle einen Eintrag hinzu, der Component1 mit demselben Feature wie (oder einem übergeordneten Feature von) dem verknüpft, das Component2 installiert.

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 weist eine Bedingung in der Component-Tabelle auf. Wenn sich diese Bedingung während der Lebensdauer einer Installation auf einem Computer jemals von TRUE in FALSE ändert, könnte die isolierte Komponente ohne Registrierungsinformationen verwaist sein.

Um diese Warnung zu beheben, entfernen Sie die Bedingung, oder erstellen Sie die Bedingung so, dass sie nie von TRUE in FALSE geändert werden kann.

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 ist sowohl für Component2 als auch für Component3 isoliert, und die beiden Komponenten werden auch im selben Verzeichnis installiert. Die Anwendungen verwenden eine isolierte Komponente gemeinsam, aber wenn eine Anwendung entfernt wird, wird auch die gemeinsam genutzte (freigegebene) Komponente entfernt, wodurch die anderen Anwendungen die isolierte Komponente verlieren.

Um diese Warnung zu beheben, installieren Sie die Anwendungen in verschiedenen Verzeichnissen, oder überprüfen Sie, ob einige der Anwendungen wirklich eine isolierte Komponente benötigen.

IsolatedComponent-Tabelle

Component_Shared Component_Application
Component1 Component2
Component1 Component3

 

Component-Tabelle

Komponente ComponentId Directory_ Attribute Bedingung KeyPath
Component1 Dir1 0 MYCONDITION Datei1
Component2 TARGETDIR 4 Registry2
Component3 TARGETDIR 0 Datei3

 

FeatureComponents-Tabelle

Feature_ Component_
Feature1 Component1
Feature2 Component2
Feature1 Component3

 

Feature-Tabelle (teilweise)

Funktion Feature_Parent
Feature1
Feature2

 

ICE-Referenz