Delen via


ICE62

ICE62 voert uitgebreide controles uit op de tabel IsolatedComponent voor gegevens die onverwacht gedrag kunnen veroorzaken.

Het oplossen van een fout die door ICE62 is gerapporteerd, kan leiden tot een storing van het geïsoleerde onderdeelsysteem op verschillende manieren. Als de Bit SharedDllRefCount bijvoorbeeld niet is ingesteld voor een gedeeld onderdeel, kan de registratie voor het onderdeel worden verwijderd wanneer een andere toepassing die ComponentId gebruikt en wordt verwijderd.

Resultaat

ICE62 plaatst een waarschuwing of fout wanneer er gegevens in de tabel IsolatedComponent worden gevonden die onverwacht gedrag kunnen opleveren.

Voorbeeld

ICE62 rapporteert de volgende fouten en waarschuwingen voor de weergegeven voorbeelden.

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

Component2 wordt vermeld als het toepassingsonderdeel voor de isolatie van component1. Component2 heeft echter een registersleutelpad en biedt geen geldig uitvoerbaar pad dat moet worden gebruikt om het onderdeel te isoleren.

Als u deze fout wilt oplossen, gebruikt u een ander onderdeel als de toepassing voor het geïsoleerde onderdeel 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 wordt vermeld als een geïsoleerd gedeeld onderdeel, maar heeft de bitset SharedDllRefCount niet. Dit kan ertoe leiden dat de levensduur van het onderdeel onjuist is. Als een andere toepassing dit onderdeel gebruikt (geïsoleerd of niet) en wordt verwijderd, wordt de registratie voor het onderdeel verwijderd, maar blijft de geïsoleerde kopie van deze toepassing behouden. Dit veroorzaakt reparatie- en verwijderingsproblemen.

Als u deze fout wilt oplossen, stelt u de SharedDllRefCount-bit voor het onderdeel in.

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 en Component2 worden geïnstalleerd door verschillende functies. Component1 wordt geïnstalleerd door Feature1 en Component2 wordt geïnstalleerd door Feature2. Feature1 is geen bovenliggend onderdeel van Feature2, dus het is mogelijk dat de toepassing wordt geïnstalleerd, maar niet het geïsoleerde onderdeel, waardoor de isolatie wordt onderbroken.

Als u deze fout wilt oplossen, voegt u een vermelding toe aan de tabel FeatureComponents die Component1 koppelt aan dezelfde functie als (of een bovenliggende functie van) de functie die Component2 installeert.

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 heeft een voorwaarde in de tabel Component. Als deze voorwaarde ooit verandert van TRUE in FALSE tijdens de levensduur van een installatie op een computer, kan het geïsoleerde onderdeel zonder registratiegegevens zweven.

Als u deze waarschuwing wilt oplossen, verwijdert u de voorwaarde of ontwerpt u de voorwaarde, zodat deze nooit kan worden gewijzigd van TRUE in 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 is geïsoleerd voor zowel Component2 als Component3, en de twee onderdelen worden ook in dezelfde map geïnstalleerd. De toepassingen delen een geïsoleerd onderdeel, maar als één toepassing wordt verwijderd, wordt het gedeelde onderdeel ook verwijderd, waardoor de andere toepassingen het geïsoleerde onderdeel kwijtraken.

Als u deze waarschuwing wilt oplossen, installeert u de toepassingen in verschillende mappen of controleert u of sommige toepassingen echt een geïsoleerd onderdeel vereisen.

IsolatedComponent Table

Component_Shared Component_Application
Component1 Component2
Component1 Component3

 

componenttabel

Bestanddeel ComponentId Map_ Kenmerken Conditie KeyPath
Component1 Dir1 0 MYCONDITION Bestand1
Component2 TARGETDIR 4 Register2
Component3 TARGETDIR 0 Bestand3

 

FeatureComponentsTable-

Gelaatstrek_ Bestanddeel_
Functie1 Component1
Functie2 Component2
Functie1 Component3

 

functietabel (gedeeltelijk)

Gelaatstrek Feature_Parent
Functie1
Functie2

 

ICE Reference