ICE30
ICE30 valida que a instalação de componentes contendo 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 a partir da tabela Directory. Em seguida, ele verifica quais desses componentes são instalados no mesmo diretório de destino. Finalmente, ele usa a tabela File para verificar se nenhum dos arquivos nesses componentes tem o mesmo nome.
O ICE30 verifica nomes de arquivo longos (LFN) e nomes de arquivos curtos (SFN).
O ICE30 não avalia propriedades na resolução de diretórios porque essas propriedades podem ser alteradas em tempo de execução e alterar o esquema de resolução de diretórios. Isso significa que o ICE30 pode detetar colisões de arquivos devido a diretórios com a mesma propriedade em seus caminhos, mas não deteta colisões resultantes de duas propriedades com o mesmo valor.
Resultado
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 seguintes erros 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 componentes. | 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. ICE30 gerar 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 File Tablee 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 quebraria a contagem de referência de componentes. | Component4 tem uma entrada na coluna Condição da tabela Componente e Component3 não. Se VersionNT for True, o Component4 será instalado e haverá uma colisão com o Readme.1st sempre instalado pelo Component3. 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 condicionais diferentes em um sistema SFN: 'Component4' e 'Component5'. Se as condições não forem mutuamente exclusivas, isso quebrará 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 apenas publica um aviso porque as condições devem ser determinadas no momento da instalação. ICE30 gera 4 avisos, um par para SFN, um para LFN. |
Tabela de componentes (parcial)
Componente | Diretório | Condição |
---|---|---|
Componente1 | Dir1 | |
Componente2 | Dir2 | |
Componente3 | Dir3 | |
Componente4 | Dir3 | VersãoNT |
Componente5 | Dir3 | Versão9X |
Diretório | Parent_Directory | DefaultDir |
---|---|---|
FONTEDIR | TARGETDIR | |
Dir1 | FONTEDIR | Produto|Produto Component1:. |
Dir2 | FONTEDIR | Produto:. |
Dir3 | FONTEDIR | Frequentes|Ferramentas comuns: |
Tabela de Ficheiros (parcial)
Ficheiro | Component_ | Nome do arquivo |
---|---|---|
Ficheiro1 | Componente1 | LEIA-ME.1 |
Ficheiro2 | Componente2 | LEIA-ME.1 |
Ficheiro3 | Componente3 | LEIA-ME.1 |
Ficheiro4 | Componente4 | LEIA-ME.1 |
Ficheiro5 | Componente5 | LEIA-ME.1 |
Tópicos relacionados