Таблица реестра
Таблица Реестр содержит сведения о реестре, которые приложение должно задать в системном реестре.
Таблица Registry содержит следующие столбцы.
Столбец | Type | Ключ | Допускает значения NULL |
---|---|---|---|
Реестр | Идентификатор | Да | N |
Root | Целое число | N | Нет |
Ключ | RegPath | N | Нет |
Имя | Форматированные | Нет | Да |
Значение | Форматированные | Нет | Да |
Компонент_ | Идентификатор | N | Нет |
Столбцы
-
Реестра
-
Первичный ключ, используемый для идентификации записи реестра.
-
Корневой
-
Предопределенный корневой раздел для значения реестра. Введите значение -1 в этом поле, чтобы корневой ключ зависел от типа установки. Введите одно из других значений в следующей таблице, чтобы принудительно записать значение реестра в определенный корневой раздел.
Константа Шестнадцатеричный Decimal Корневой ключ (нет) — 0x001 -1 Если это установка для каждого пользователя, значение реестра записывается в HKEY_CURRENT_USER. Если это установка для каждого компьютера, значение реестра записывается в HKEY_LOCAL_MACHINE. Обратите внимание, что установка для каждого компьютера определяется путем установки свойства ALLUSERS значения 1. msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT Установщик записывает или удаляет значение из куста HKCU\Software\Classes во время установки в контексте установки на пользователя.
Установщик записывает или удаляет значение из куста HKLM\Software\Classes во время установки для каждого компьютера.msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE msidbRegistryRootUsers 0x003 3 HKEY_USERS Обратите внимание, что рекомендуется, чтобы записи реестра, записанные в куст HKCU , ссылались на компонент с битом RegistryKeyPath в столбце Атрибуты таблицы Компонент. Это гарантирует, что установщик записывает необходимые записи реестра при наличии нескольких пользователей на одном компьютере.
-
Ключ
-
Локализуемый раздел для значения реестра.
-
Имя
-
Этот столбец содержит имя значения реестра (локализуемое). Если имеет значение Null, данные, введенные в столбец Значение, записываются в раздел реестра по умолчанию.
Если столбец Value имеет значение Null, строки, показанные в следующей таблице в столбце Имя, имеют особое значение.
Строка Значение + Ключ создается при его отсутствии при установке компонента. - При удалении компонента необходимо удалить ключ со всеми его значениями и подразделами, если он имеется. * Ключ создается при его отсутствии при установке компонента. Кроме того, при удалении компонента необходимо удалить ключ со всеми его значениями и подразделами, если он имеется. Обратите внимание, что таблица RemoveRegistry должна использоваться при удалении установленного раздела реестра со значениями и подразделами при установке компонента.
-
Значение
-
Этот столбец является локализуемым значением реестра. Поле форматировано. Если значение присоединено к одному из следующих префиксов (т. е. #%value), то значение интерпретируется так, как описано в таблице . Обратите внимание, что каждый префикс начинается со знака номера (#). Если значение начинается с двух или более последовательных числовых знаков (#), первый знак #игнорируется, а значение интерпретируется и сохраняется как строка.
Prefix Значение #x Значение интерпретируется и сохраняется как шестнадцатеричное значение (REG_BINARY). #% Значение интерпретируется и сохраняется как расширяемая строка (REG_EXPAND_SZ). # Значение интерпретируется и сохраняется как целое число (REG_DWORD). - Если значение содержит тильду последовательности [~], то значение интерпретируется как список строк с разделителями NULL (REG_MULTI_SZ). Например, чтобы указать список, содержащий три строки a, b и c, используйте "a[~]b[~]c".
- Последовательность [~] в значении разделяет отдельные строки и интерпретируется и сохраняется как символ NULL.
- Если [~] предшествует списку строк, строки должны быть добавлены к любым существующим строкам значений реестра. Если добавляемая строка уже имеется в значении реестра, исходное вхождение строки удаляется.
- Если [~] следует за концом списка строк, строки должны быть перед любыми существующими строками значений реестра. Если строка в начале уже есть в значении реестра, исходное вхождение строки удаляется.
- Если [~] находится как в начале, так и в конце или ни в начале, ни в конце списка строк, строки должны заменить все существующие строки значений реестра.
- В противном случае значение интерпретируется и сохраняется как строка (REG_SZ).
-
Компонент_
-
Внешний ключ в первом столбце таблицы Component , ссылающийся на компонент, управляющий установкой значения реестра.
Комментарии
Действия WriteRegistryValues и RemoveRegistryValues в таблицах последовательностей обрабатывают сведения в этой таблице. Сведения об использовании таблиц последовательностей см. в разделе Использование таблицы последовательностей.
Сведения о реестре записываются в системный реестр, когда выбран соответствующий компонент для локальной установки или запуска из источника.
Обратите внимание, что установщик удаляет раздел реестра после удаления последнего значения или подраздела в разделе. Чтобы предотвратить удаление пустого раздела реестра при удалении, запишите фиктивное значение в разделе, который необходимо сохранить, и введите + в столбце Имя. Если * находится в столбце Имя, при удалении компонента ключ удаляется со всеми его значениями и подразделами.
Настраиваемое действие можно использовать для добавления строк в таблицу реестра во время установки, удаления или восстановления транзакции. Эти строки не сохраняются в таблице Реестра, и информация доступна только во время текущей транзакции. Следовательно, настраиваемое действие должно выполняться в каждой транзакции установки, удаления или восстановления, которая требует наличия сведений в этих дополнительных строках. Настраиваемое действие должно выполняться перед действиями RemoveRegistryValues и WriteRegistryValues в последовательности действий.
Сведения о том, как защитить раздел реестра, см. в разделах Таблица MsiLockPermissionsEx и Таблица LockPermissions.
Проверка