Таблица реестра
В таблице реестра содержатся сведения о реестре, которые приложение должно задать в системном реестре.
Таблица реестра содержит следующие столбцы.
Столбец | Тип | Ключ | Допустимое значение NULL |
---|---|---|---|
Регистратура | идентификатора | Y | N |
Корень | целочисленного | N | N |
Ключ | RegPath | N | N |
Имя | Форматированные | N | Y |
Ценность | Форматированные | N | Y |
Компонент_ | идентификатора | N | N |
Столбцы
-
Реестр
-
Первичный ключ, используемый для идентификации записи реестра.
-
корневой каталог
-
Предопределенный корневой раздел для значения реестра. Введите значение -1 в этом поле, чтобы корневой ключ зависел от типа установки. Введите одно из других значений в следующей таблице, чтобы принудительно записать значение реестра под определенным корневым ключом.
Постоянный Шестнадцатиричный Десятичный Корневой ключ (нет) - 0x001 -1 Если это установка для каждого пользователя, значение реестра записывается в HKEY_CURRENT_USER. Если это установка на компьютер, значение реестра записывается в HKEY_LOCAL_MACHINE. Обратите внимание, что установка на компьютер указывается путем задания свойства ALLUSERS значение 1. msidbRegistryRootClassesRootRoot 0x000 0 HKEY_CLASSES_ROOTустановщик записывает или удаляет значение из HKCU\Software\Classes hive во время установки в контексте установкиустановки.
Установщик записывает или удаляет значение из HKLM\Software\Classes hive во время установки на компьютер.msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE msidbRegistryRootUsers 0x003 3 HKEY_USERS Обратите внимание, что рекомендуется, чтобы записи реестра, записанные в HKCU hive, ссылались на компонент, имеющий бит RegistryKeyPath в столбце "Атрибуты" таблицы компонентов . Это гарантирует, что установщик записывает необходимые записи реестра при наличии нескольких пользователей на одном компьютере.
-
ключ
-
Локализуемый раздел для значения реестра.
-
имя
-
Этот столбец содержит имя значения реестра (локализуемое). Если значение равно NULL, данные, введенные в столбец Value, записываются в раздел реестра по умолчанию.
Если столбец "Значение" имеет значение NULL, строки, отображаемые в следующей таблице в столбце "Имя", имеют особое значение.
Струна Значение + Ключ должен быть создан, если он отсутствует при установке компонента. - Ключ должен быть удален, если он присутствует, со всеми его значениями и подразделами при удалении компонента. * Ключ должен быть создан, если он отсутствует при установке компонента. Кроме того, ключ необходимо удалить, если он присутствует, со всеми его значениями и вложенными ключами при удалении компонента. Обратите внимание, что таблицу removeRegistry необходимо использовать, если установленный раздел реестра должен быть удален со своими значениями и подразделами при установке компонента.
-
значение
-
Этот столбец является локализуемым значением реестра. Поле отформатировано. Если значение присоединено к одному из следующих префиксов (т. е. #%значение), то значение интерпретируется как описано в таблице. Обратите внимание, что каждый префикс начинается с знака номера (#). Если значение начинается с двух или более последовательных знаков числа (#), первый # игнорируется, а значение интерпретируется и сохраняется как строка.
Приставка Значение #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.
Ратификация