ICE38

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

Результат

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

Пример

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

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

 

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

Directory 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

 

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

Реестр Root Значение Компонент_
Reg3 2 Компонент 3
Reg5 0 Компонент 4

 

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