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


ICE38

ICE38 проверяет, что каждый компонент, установленный в профиле текущего пользователя, также указывает раздел реестра под корнем HKEY_CURRENT_USER в столбце KeyPath таблицы компонентов .

Результат

ICE38 публикует ошибку, если компонент, установленный в профиле пользователя, не указывает раздел реестра HKCU.

Пример

ICE38 сообщает следующие ошибки для показанного примера.

Ошибка ICE38 Описание
Компонент Component1 устанавливает профиль пользователя. Он должен использовать раздел реестра в HKCU в качестве ключа KeyPath, а не файла. Значение столбца атрибутов компонента Component1 равно 0, что означает, что компонент должен использовать файл в качестве keyPath. Это приводит к трудностям при установке компонента на одном компьютере несколькими пользователями. Чтобы устранить эту ошибку в компоненте 1, задайте бит RegistryKeyPath в столбце "Атрибуты" таблицы компонентов и измените запись в столбце KeyPath на значение, указанное в столбце Реестра таблицы реестра.
Компонент Component2 устанавливается в профиль пользователя. Он должен использовать раздел реестра в HKCU в качестве keyPath. KeyPath в настоящее время имеет значение NULL. Компонент 2 имеет бит RegistryKeyPath в столбце "Атрибуты" таблицы компонентов . Поэтому поле KeyPath должно содержать ключ в столбце реестра таблицы реестра , но столбец KeyPath имеет значение NULL. Чтобы устранить эту ошибку, измените значение KeyPath на допустимую запись в таблицу реестра.
Компонент Component3 устанавливается в профиль пользователя. Этот раздел реестра KeyPath должен соответствовать HKCU. Компонент 3 имеет бит RegistryKeyPath в столбце "Атрибуты" таблицы компонентов , но корень записи реестра, указанной в корневом столбце таблицы реестра, указывает HKEY_LOCAL_MACHINE, а не HKEY_CURRENT_USER. Чтобы устранить эту ошибку, используйте допустимую запись реестра в HKEY_LOCAL_MACHINE в качестве keyPath для этого компонента или измените значение в корневом столбце таблицы реестра на -1 или 1.
Запись реестра KeyPath для компонента Component4 не существует. Компонент 4 имеет бит RegistryKeyPath в столбце "Атрибуты" таблицы компонентов , но запись в столбце KeyPath не существует в таблице реестра . Чтобы устранить эту ошибку, добавьте запись для Reg4 в таблицу реестра, которая находится в HKEY_CURRENT_USER.
Запись реестра reg5 задана как KeyPath для компонента Component5, но эта запись реестра не принадлежит компоненту Component5. Запись реестра, указанная в столбце KeyPath компонента, найдена и находится под деревом HKCU, но столбец записи реестра Component_ не ссылается на тот же компонент, который перечислил его как KeyPath. Это означает, что запись реестра, используемая в качестве keyPath компонента, будет создана только при установке другого компонента. Чтобы устранить эту ошибку, измените значение KeyPath для ссылки на запись реестра, принадлежащую компоненту, или измените запись реестра, чтобы она принадлежала компоненту, используя его в качестве keyPath.

 

таблица каталогов (частично)

Каталог Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

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

Компонент Каталог_ Атрибуты KeyPath
Компонент1 Dir1 0 Файл1
Компонент2 Dir2 4
Компонент3 Dir3 4 Reg3
Компонент4 Dir4 4 Reg4
Компонент5 Dir5 4 Reg5

 

таблица реестра (частично)

Регистратура Корень Ценность Компонент_
Reg3 2 Компонент3
Reg5 0 Компонент4

 

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