Compartilhar via


ICE30

O ICE30 valida que a instalação de componentes que contêm o mesmo arquivo nunca instala o arquivo mais de uma vez no mesmo diretório.

O ICE30 vai para todos os componentes da tabela Component e, em seguida, determina o diretório de destino do componente da tabela Directory. Em seguida, verifica quais desses componentes são instalados no mesmo diretório de destino. Por fim, ele usa a tabela Arquivo para verificar se nenhum dos arquivos nesses componentes tem o mesmo nome.

O ICE30 verifica os nomes de arquivo longos (LFN) e os nomes de arquivo curtos (SFN).

O ICE30 não avalia as propriedades na resolução de diretórios porque essas propriedades podem ser alteradas em runtime e alterar o esquema de resolução de diretório. Isso significa que o ICE30 pode detectar colisões de arquivo devido a diretórios com a mesma propriedade em seus caminhos, mas não detecta colisões resultantes de duas propriedades com o mesmo valor.

Resultado

O ICE30 posta uma mensagem de erro para cada par de componentes que instala o mesmo arquivo no mesmo diretório.

Exemplo

O exemplo mostrado retorna cada um dos erros a seguir duas vezes.

Erro ou aviso ICE30 Descrição
ERRO: O arquivo de destino 'README.1st' é instalado em 'TARGETDIR\PRODUCT' por dois componentes diferentes em um sistema SFN: 'Component1' e 'Component2'. Isso interrompe a contagem de referência de componente. Component1 e Component2 têm um arquivo chamado 'READEME.1st'. Ao usar nomes de arquivo curtos, o instalador instala Dir1 e Dir2 no mesmo diretório, TARGETDIR\PRODUCT.
O ICE30 gera dois erros, um para cada arquivo. Em um ambiente de criação que exibe locais de erro, o primeiro erro está na entrada de um arquivo no da Tabela de Arquivose o segundo no local do outro arquivo.
ERRO: A instalação de um componente condicionalizado faria com que o arquivo de destino 'README.1st' fosse instalado em 'TARGETDIR\COMMON TOOLS' por dois componentes diferentes em um sistema LFN: 'Component3' e 'Component4'. Isso interromperia a contagem de referência de componente. Component4 tem uma entrada na coluna Condição da tabela componente e Component3 não. Se VersionNT for True, Component4 será instalado e haverá uma colisão com o Readme.1st sempre instalado pelo Component3.
O ICE30 gera 4 erros, um par para SFN, um para LFN.
AVISO: o arquivo de destino 'README.1st' pode ser instalado em 'TARGETDIR\COMMON TOOLS' por dois componentes condicionalizados diferentes em um sistema SFN: 'Component4' e 'Component5'. Se as condições não forem mutuamente exclusivas, isso interromperá o sistema de contagem de referência do componente. Como Component4 e Component5 têm entradas na coluna Condição da tabela componente essa colisão de arquivo pode não ocorrer. O ICE30 publica apenas um aviso porque as condições devem ser determinadas no momento da instalação.
O ICE30 gera 4 avisos, um par para SFN, um para LFN.

 

da Tabela de Componentes (parcial)

Componente Diretório Condição
Component1 Dir1
Component2 Dir2
Componente3 Dir3
Componente4 Dir3 VersionNT
Componente5 Dir3 Version9X

 

de tabela de diretório

Diretório Parent_Directory DefaultDir
SOURCEDIR   TARGETDIR
Dir1 SOURCEDIR Produto|Component1 Product:.
Dir2 SOURCEDIR Produto:.
Dir3 SOURCEDIR Comum|Ferramentas Comuns:

 

da Tabela de Arquivos (parcial)

Arquivo Componente_ Filename
Arquivo1 Component1 README.1st
Arquivo2 Component2 README.1st
Arquivo3 Componente3 README.1st
Arquivo4 Componente4 README.1st
Arquivo5 Componente5 README.1st

 

de referência do ICE