ICE43

O ICE43 valida que os atalhos que não referenciam um recurso como destino (atalhos não anunciados) estão em componentes que têm uma entrada do Registro HKCU como caminho de chave.

Result

O ICE43 postará uma mensagem de erro se um atalho não anunciado estiver em um componente que não tenha uma entrada do Registro HKCU como o caminho de chave.

Exemplo

O ICE43 relatará os erros a seguir para o exemplo mostrado.

Erro do ICE43 Descrição
O componente Component1 tem atalhos não anunciados. Ele precisa usar uma chave do Registro em HKCU como o KeyPath, não um arquivo. A coluna de atributos de Component1 é 0, o que significa que o componente usa um arquivo como o KeyPath. Isso faz com que os atalhos não anunciados nesse componente sejam instalados SOMENTE para o primeiro usuário no computador. Os usuários que instalam o componente posteriormente não veem os atalhos, porque o componente aparece para o instalador como já existente no computador. Para corrigir esse erro, defina o bit RegistryKeyPath dos atributos para alternar o Component para uma entrada do Registro e, em seguida, altere o valor de KeyPath para uma entrada válida na tabela Registry.
O componente Component2 tem atalhos não anunciados. Ele precisa usar uma chave do Registro em HKCU como o KeyPath. O KeyPath é atualmente nulo. A coluna Attributes é definida para usar o Registro, mas o KeyPath é nulo. O KeyPath precisa se referir a uma entrada na tabela Registry. Para corrigir esse erro, altere o valor de KeyPath para uma entrada válida na tabela Registry.
O componente Component3 tem atalhos não anunciados. A chave do Registro KeyPath precisa se enquadrar em HKCU. A coluna Attributes é definida para usar o Registro, mas a entrada do Registro referenciada não está em HKCU. Para corrigir esse erro, alterne para uma entrada de Registro diferente como o KeyPath para esse componente ou altere o valor Root da entrada do Registro para -1 ou 1.
A entrada do Registro KeyPath para o componente Component4 não existe. A entrada do Registro referenciada na coluna KeyPath do componente não está na tabela Registry. Para corrigir esse erro, crie uma entrada.
O Reg5 da entrada do Registro é definido como o KeyPath para o componente Component5, mas essa entrada do Registro não pertence ao Component5. Há uma entrada do Registro referenciada na coluna KeyPath do componente que 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 se algum outro componente tiver sido 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 Component (parcial)

Componente Atributos KeyPath
Component1 0 Arquivo1
Component2 4  
Component3 4 Reg3
Component4 4 Reg4
Component5 4 Reg5

 

Tabela Registry (parcial)

Registro Root Valor Component_
Reg3 2 Component3
Reg5 0 Component4

 

Referência do ICE