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 |