ICE62

ICE62 esegue controlli estesi sulla tabella IsolatedComponent per i dati che possono causare un comportamento imprevisto.

La correzione di un errore segnalato da ICE62 può causare un errore del sistema componente isolato in un'ampia gamma di modi. Ad esempio, se il bit SharedDllRefCount non è impostato per un componente condiviso, la registrazione per il componente potrebbe essere rimossa quando un'altra applicazione usa ComponentId e viene disinstallata.

Risultato

ICE62 invia un avviso o un errore quando trova i dati nella tabella IsolatedComponent che potrebbero produrre un comportamento imprevisto.

Esempio

ICE62 segnala gli errori e gli avvisi seguenti per gli esempi illustrati.

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

Component2 è elencato come componente dell'applicazione per l'isolamento del componente1. Tuttavia, Component2 ha un percorso chiave del Registro di sistema e non fornisce un percorso eseguibile valido da usare per isolare il componente.

Per correggere questo errore, usare un componente diverso come applicazione per il componente isolato 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 è elencato come componente condiviso isolato, ma non ha il set di bit SharedDllRefCount. Ciò potrebbe comportare la durata del componente non corretto. Se un'altra applicazione usa questo componente (isolato o meno) e viene disinstallata, la registrazione per il componente viene rimossa ma la copia isolata dell'applicazione rimane. Ciò causa problemi di ripristino e disinstallazione.

Per correggere questo errore, impostare il bit SharedDllRefCount per il componente.

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 e Component2 vengono installati da diverse funzionalità. Component1 è installato da Feature1 e Component2 è installato da Feature2. Feature1 non è un elemento padre di Feature2, pertanto è possibile che l'applicazione venga installata ma non il componente isolato, interrompendo l'isolamento.

Per correggere questo errore, aggiungere una voce alla tabella FeatureComponents che collega Component1 alla stessa funzionalità di (o una funzionalità padre) della funzionalità che installa 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 ha una condizione nella tabella Component. Se questa condizione cambia da TRUE a FALSE durante la durata di un'installazione in un computer, il componente isolato potrebbe essere orfano senza informazioni di registrazione.

Per correggere questo avviso, rimuovere la condizione o creare la condizione in modo che non possa mai passare da TRUE a 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 è isolato sia per Component2 che per Component3 e i due componenti vengono installati anche nella stessa directory. Le applicazioni condividono un componente isolato, ma se un'applicazione viene rimossa, il componente condiviso viene rimosso, causando la perdita del componente isolato da parte delle altre applicazioni.

Per correggere questo avviso, installare le applicazioni in directory diverse o verificare se alcune delle applicazioni richiedono veramente un componente isolato.

Tabella IsolatedComponent

Component_Shared Component_Application
Componente1 Componente2
Componente1 Componente3

 

Tabella componente

Componente Componentid Directory_ Attributi Condizione KeyPath
Componente1 Dir1 0 MYCONDITION File1
Componente2 TARGETDIR 4 Registro di sistema2
Componente3 TARGETDIR 0 File3

 

FeatureComponentsTable

Feature_ Component_
Feature1 Componente1
Funzionalità2 Componente2
Feature1 Componente3

 

Tabella delle funzionalità (parziale)

Funzionalità Feature_Parent
Feature1
Funzionalità2

 

Informazioni di riferimento SU ICE