Freigeben über


ICE62

ICE62 führt umfangreiche Überprüfungen der IsolatedComponent-Tabelle auf Daten durch, die zu unerwartetem Verhalten führen können.

Fehler beim Beheben eines von ICE62 gemeldeten Fehlers können zu einem Fehler des isolierten Komponentensystems auf vielfältige Weise führen. Wenn beispielsweise das SharedDllRefCount-Bit nicht für eine freigegebene Komponente festgelegt ist, kann die Registrierung für die Komponente entfernt werden, wenn eine andere Anwendung diese ComponentId verwendet und deinstalliert wird.

Ergebnis

ICE62 sendet eine Warnung oder einen Fehler, wenn daten in der Tabelle "IsolatedComponent" 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 Komponente1 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, verfügt jedoch nicht über den Bitsatz SharedDllRefCount. Dies kann dazu führen, dass die Komponente nicht korrekt ist. Wenn eine andere Anwendung diese Komponente verwendet (isoliert oder nicht) und deinstalliert wird, wird die Registrierung für die Komponente entfernt, die isolierte Kopie dieser Anwendung bleibt jedoch 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').

Komponente1 und Komponente2 werden von verschiedenen Features installiert. Component1 wird von Feature1 installiert, und Component2 wird von Feature2 installiert. Feature1 ist kein übergeordnetes Element von Feature2, daher ist es möglich, dass die Anwendung installiert werden kann, aber nicht die isolierte Komponente, wodurch die Isolation getrennt wird.

Um diesen Fehler zu beheben, fügen Sie einen Eintrag zur FeatureComponents-Tabelle hinzu, die Komponente1 mit demselben Feature verknüpft wie (oder ein übergeordnetes Feature von), 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 hat eine Bedingung in der Tabelle "Component". Wenn sich diese Bedingung während der Lebensdauer einer Installation auf einem Computer von WAHR in FALSCH ändert, kann die isolierte Komponente ohne Registrierungsinformationen verwaist werden.

Um diese Warnung zu beheben, entfernen Sie die Bedingung, oder erstellen Sie die Bedingung, damit sie nie von WAHR in FALSCH 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 ebenfalls in demselben Verzeichnis installiert. Die Anwendungen teilen eine isolierte Komponente, aber wenn eine Anwendung entfernt wird, wird die 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 Table

Component_Shared Component_Application
Komponente1 Komponente2
Komponente1 Komponente3

 

Komponententabelle

Bestandteil ComponentId Verzeichnis_ Attribute Zustand KeyPath
Komponente1 Dir1 0 MYCONDITION Datei1
Komponente2 TARGETDIR 4 Registry2
Komponente3 TARGETDIR 0 Datei3

 

FeatureComponentsTable-

Merkmal_ Bestandteil_
Feature1 Komponente1
Feature2 Komponente2
Feature1 Komponente3

 

Featuretabelle (teilweise)

Merkmal Feature_Parent
Feature1
Feature2

 

ICE Reference