ICE60

O ICE60 verifica se os arquivos na Tabela de Arquivos atendem à seguinte condição:

  • Caso o arquivo não seja uma fonte e tenha uma versão, ele deverá ter um idioma.
  • O ICE60 verifica se nenhum arquivo com controle de versão está listado na Tabela MsiFileHash.

A falha ao corrigir um aviso relatado pelo ICE60 geralmente faz com que um arquivo seja reinstalado desnecessariamente quando um reparo de produto é feito. Isso acontece porque o arquivo a ser instalado no reparo e o arquivo existente no disco têm a mesma versão (eles são o mesmo arquivo), mas idiomas diferentes. A tabela de arquivos lista o idioma como nulo, mas o próprio arquivo tem um valor de idioma no recurso. Com base nas regras de controle de versão do arquivo, o instalador favorece a instalação do arquivo, portanto, ele é recopiado desnecessariamente.

Result

O ICE60 postará um aviso ou um erro caso um arquivo na Tabela de Arquivos que não seja uma fonte e tenha uma versão, não tenha um idioma.

O ICE60 postará o erro a seguir caso um arquivo listado na tabela MsiFileHash tenha controle de versão.

ERROR: "The file [1] is Versioned. It cannot be hashed"

Exemplo

O ICE60 relata o seguinte erro e aviso para o exemplo mostrado. (O arquivo B é uma fonte; os outros arquivos não são.)

WARNING: The file FileE is not a Font, and its version is not a companion file reference. It should have a language specified in the Language column.

O FileA tem uma versão e um idioma, portanto, nenhum aviso ou erro é gerado.

O FileB tem uma versão, mas nenhum idioma. No entanto, nenhum aviso ou erro é gerado porque é uma fonte.

O FileC é uma referência complementar, portanto, ele não precisa ter um idioma. Nenhum aviso ou erro é gerado.

O FileD não tem versão, portanto, não precisa ter um idioma. Nenhum aviso ou erro é gerado.

O FileE tem uma versão, mas nenhum idioma. Portanto, um aviso é gerado.

Para corrigir esse aviso, adicione um idioma ao FileE.

Os arquivos devem ter valores de idioma armazenados no recurso de versão sempre que possível. Se um arquivo for neutro em termos de idioma, use o LANGID 0.

Tabela de Arquivos (FileB é uma fonte; os outros arquivos não são.)

Arquivo Versão Idioma
FileA 1.0 1033
FileB 1.0
FileC FileA
FileD
FileE 1.0

 

Tabela de Fontes

Arquivo FontTitle
FileB Título da Fonte

 

Referência do ICE