Condividi tramite


ICE62

ICE62 esegue controlli estesi sulla tabella IsolatedComponent per i dati che possono causare comportamenti imprevisti.

La mancata 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 tale 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 mostrati.

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 di component1. Tuttavia, Component2 ha un percorso di 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 corretta. Se un'altra applicazione usa questo componente (isolato o meno) e viene disinstallata, la registrazione per il componente viene rimossa ma rimane la copia isolata dell'applicazione. 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 viene installato da Feature1 e Component2 viene 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 di) 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 passa 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 l'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 nella stessa directory. Le applicazioni condividono un componente isolato, ma se un'applicazione viene rimossa, il componente condiviso viene rimosso e le altre applicazioni perderanno il componente isolato.

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

tabella IsolatedComponent

Component_Shared Component_Application
Componente1 Componente2
Componente1 Componente3

 

tabella dei componenti

Componente ComponentId Directory_ Attributi Condizione KeyPath
Componente1 Dir1 0 MYCONDITION File1
Componente2 TARGETDIR 4 Registry2
Componente3 TARGETDIR 0 File3

 

FeatureComponentsTable

Caratteristica_ Componente_
Feature1 Componente1
Funzionalità2 Componente2
Feature1 Componente3

 

tabella delle funzionalità (parziale)

Caratteristica Feature_Parent
Feature1
Funzionalità2

 

di riferimento ICE