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 |
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 |
Tópicos relacionados