Поделиться через


ICE30

ICE30 проверяет, что установка компонентов, содержащих один и тот же файл, никогда не устанавливает файл более одного раза в одном каталоге.

ICE30 переходит к каждому компоненту в таблице Компонент , а затем определяет целевой каталог компонента из таблицы Каталог. Затем проверяется, какие из этих компонентов устанавливаются в тот же целевой каталог. Наконец, она использует таблицу File , чтобы убедиться, что ни один из файлов в этих компонентах не имеет одинаковых имен.

ICE30 проверяет как длинные имена файлов (LFN), так и короткие имена файлов (SFN).

ICE30 не оценивает свойства в разрешении каталогов, так как эти свойства могут изменяться во время выполнения и изменять схему разрешения каталогов. Это означает, что ICE30 может обнаруживать конфликт файлов из-за каталогов с одинаковым свойством в их путях, но не обнаруживает конфликтов, вызванных тем, что два свойства имеют одинаковое значение.

Результат

ICE30 отправляет сообщение об ошибке для каждой пары компонентов, которые устанавливают один и тот же файл в одном каталоге.

Пример

Показанный пример возвращает каждую из следующих ошибок дважды.

Ошибка или предупреждение ICE30 Описание
ОШИБКА. Целевой файл "README.1st" устанавливается в "TARGETDIR\PRODUCT" двумя разными компонентами в системе SFN: "Component1" и "Component2". Это нарушает подсчет ссылок на компоненты. Component1 и Component2 имеют файл с именем READEME.1st. При использовании коротких имен файлов установщик устанавливает Dir1 и Dir2 в одном каталоге TARGETDIR\PRODUCT.
ICE30 создает две ошибки, по одной для каждого файла. В среде разработки, в которой отображаются расположения ошибок, первая ошибка находится в записи одного файла в таблице файлов, а вторая — в расположении другого файла.
ОШИБКА. Установка условного компонента приведет к установке целевого файла README.1st в TARGETDIR\COMMON TOOLS двумя разными компонентами в системе LFN: Component3 и Component4. Это приведет к прерыванию подсчета ссылок на компоненты. Компонент 4 имеет запись в столбце Условие таблицы Компонент , а Компонент 3 — нет. Если versionNT имеет значение True, компонент Component4 устанавливается и возникает конфликт с файлом Readme.1st, который всегда устанавливается компонентом Component3.
ICE30 создает 4 ошибки: одна пара для SFN, одна для LFN.
ПРЕДУПРЕЖДЕНИЕ. Целевой файл README.1st может быть установлен в TARGETDIR\COMMON TOOLS двумя разными условными компонентами в системе SFN: Component4 и Component5. Если условия не являются взаимоисключающими, это нарушит систему подсчета ссылок на компоненты. Так как Component4 и Component5 имеют записи в столбце Условие таблицы Компонент , конфликт файлов может не произойти. ICE30 публикует только предупреждение, так как условия должны быть определены во время установки.
ICE30 создает 4 предупреждения: одно — для SFN, одно — для LFN.

 

Таблица компонентов (частичная)

Компонент Directory Условие
Компонент1 Dir1
Компонент 2 Dir2
Компонент 3 Dir3
Компонент 4 Dir3 VersionNT
Компонент 5 Dir3 Version9X

 

Таблица каталогов

Directory Parent_Directory DefaultDir
SOURCEDIR   TARGETDIR
Dir1 SOURCEDIR Продукт | Компонент 1 Продукт:.
Dir2 SOURCEDIR Продукта:.
Dir3 SOURCEDIR Общие | Общие инструменты:

 

Таблица файлов (частичная)

File Компонент_ FileName
Файл1 Компонент1 README.1st
Файл2 Компонент 2 README.1st
Файл3 Компонент 3 README.1st
Файл4 Компонент 4 README.1st
Файл5 Компонент 5 README.1st

 

Справочник по ICE