ICE38

O ICE38 valida que cada componente que está sendo instalado no perfil do usuário atual também especifica uma chave do registro na raiz HKEY_CURRENT_USER na coluna KeyPath da tabela Component.

Result

O ICE38 postará um erro se um componente instalado no perfil do usuário não especificar uma chave do registro HKCU.

Exemplo

Para o exemplo mostrado, o ICE38 relata os erros a seguir.

Erro ICE38 Descrição
O componente Component1 foi instalado no perfil do usuário. Ele precisa usar uma chave do registro em HKCU como o KeyPath, não um arquivo. O valor da coluna de atributos de Component1 é 0, o que significa que o componente deve usar um arquivo como o KeyPath. Isso causa dificuldades quando vários usuários instalam o componente no mesmo computador. Para corrigir esse erro em Component1, defina o bit RegistryKeyPath na coluna Attributes da tabela Component e altere a entrada na coluna KeyPath para um valor listado na coluna Registry da tabela Registry.
O componente Component2 foi instalado no perfil do usuário. Ele precisa usar uma chave do registro em HKCU como o KeyPath. O KeyPath é atualmente NULL. O Component2 tem o bit RegistryKeyPath definido na coluna Attributes da tabela Component. Portanto, o campo KeyPath deve conter uma chave para a coluna Registry da Tabela Registry, mas a coluna KeyPath é Null. Para corrigir esse erro, altere o valor de KeyPath para uma entrada válida na tabela Registry.
O componente Component3 foi instalado no perfil do usuário. A chave do Registro KeyPath precisa se enquadrar em HKCU. O Component3 tem o bit RegistryKeyPath definido na coluna Attributes da tabela Component, mas a raiz da entrada do registro especificada na coluna Root da tabela Registry especifica HKEY_LOCAL_MACHINE, em vez de HKEY_CURRENT_USER. Para corrigir esse erro, use uma entrada válida do registro em HKEY_LOCAL_MACHINE como o KeyPath para esse componente ou altere o valor na coluna Root da tabela Registry para -1 ou 1.
A entrada do registro KeyPath para o componente Component4 não existe. O Component4 tem o bit RegistryKeyPath definido na coluna Attributes da tabela Component, mas a entrada na coluna KeyPath não existe na Tabela Registry. Para corrigir esse erro, adicione uma entrada para Reg4 à tabela Registry que está em HKEY_CURRENT_USER.
O Reg5 da entrada do Registro é definido como o KeyPath para o componente Component5, mas essa entrada do registro não pertence ao Component5. A entrada do registro referenciada na coluna KeyPath do componente foi encontrada e está abaixo da árvore HKCU, mas a coluna Component_ da entrada do registro não referencia o mesmo componente que a listou como o KeyPath. Isso significa que a entrada do Registro usada como KeyPath do componente só será criada quando algum outro componente for instalado. Para corrigir esse erro, altere o valor de KeyPath para que ele se refira a uma entrada do registro que pertença ao componente ou altere a entrada do registro para pertencer ao componente usando-o como um KeyPath.

 

Tabela Directory (parcial)

Diretório Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

Tabela Component (parcial)

Componente Directory_ Atributos KeyPath
Component1 Dir1 0 Arquivo1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
Component5 Dir5 4 Reg5

 

Tabela Registry (parcial)

Registro Root Valor Component_
Reg3 2 Component3
Reg5 0 Component4

 

Referência do ICE