ICE02
ICE02 verifica che determinati riferimenti tra le tabelle Component, File e Registry siano reciproche. Questi riferimenti devono essere reciproci per consentire al programma di installazione di determinare correttamente lo stato di installazione dei componenti.
Il programma di installazione usa la colonna KeyPath della tabella Component per rilevare la presenza del componente elencato nella colonna Componente. La colonna KeyPath contiene una chiave nelle tabelle Del Registro di sistema o File. Entrambe queste tabelle hanno una colonna Component_ che contiene una chiave nella tabella Component che punta al componente che controlla la voce o il file del Registro di sistema. Questi riferimenti devono essere reciproci.
ICE02 pubblica un messaggio di errore se trova un riferimento che deve essere reciproco e non lo è.
ICE02 invia il messaggio di errore seguente per un file msi contenente le voci del database visualizzate.
File: 'Red_File' cannot be the key file for Component: 'Blue'. The file belongs to Component: 'Red'
Tabella dei componenti (parziale)
Componente | KeyPath |
---|---|
Rosso | Red_File |
Blu | Red_File |
Tabella file (parziale)
Colonna file | Componente_ |
---|---|
Red_File | Rosso |
Blue_File | Blu |
I riferimenti a Blu componente Red_File, ma Red_File non sono controllati da Component Blue e pertanto non possono essere il file KeyPath. Se il programma di installazione veniva chiamato per ottenere lo stato di installazione di Blue, verificava erroneamente se Red_File è stato installato. La modifica del campo KeyPath per Blue nella tabella del componente in Blue_File corregge l'errore.