Таблица SelfReg
Таблица SelfReg содержит сведения о модулях, которые должны быть зарегистрированы самостоятельно. Установщик вызывает функцию DllRegisterServer во время установки модуля; он вызывает DllUnregisterServer во время удаления модуля. Установщик не регистрирует файлы EXE.
Таблица SelfReg содержит следующие столбцы.
Столбец | Тип | Ключ | Допустимое значение NULL |
---|---|---|---|
Файл_ | идентификатора | Y | N |
Стоить | целочисленного | N | Y |
Столбцы
-
File_
-
Внешний ключ в первом столбце таблицы файлов , указывающий модуль, который необходимо зарегистрировать.
-
стоимость
-
Стоимость регистрации модуля в байтах. Это должно быть не отрицательное число.
Замечания
Авторы пакетов установки настоятельно рекомендуется использовать самостоятельную регистрацию. Вместо этого они должны регистрировать модули, создавая одну или несколько таблиц, предоставляемых установщиком для этой цели. Дополнительные сведения см. в группе таблиц реестра. Многие из преимуществ центральной службы установщика теряются при самостоятельной регистрации, так как процедуры самостоятельной регистрации, как правило, скрывают критически важные сведения о конфигурации. Причины для предотвращения самостоятельной регистрации включают:
- Откат установки с саморегистрированными модулями не может быть безопасно выполнен с помощью DllUnregisterServer, так как нет способа сказать, используются ли саморегистрированные ключи другим компонентом или приложением.
- Возможность использования рекламы снижается, если регистрация класса или сервера расширений выполняется в рамках процедур самостоятельной регистрации.
- Установщик автоматически обрабатывает разделы HKCR в таблицах реестра как для каждого пользователя, так и для установки на компьютер. подпрограммы DllRegisterServer в настоящее время не поддерживают понятие ключа HKCR для каждого пользователя.
- Если несколько пользователей используют саморегистрированное приложение на одном компьютере, каждый пользователь должен установить приложение при первом запуске приложения. В противном случае установщику не удается определить, существуют ли соответствующие разделы реестра HKCU.
- DllRegisterServer можно запретить доступ к сетевым ресурсам, таким как библиотеки типов, если компонент указан как в качестве запуска из источника и указан в таблице SelfReg. Это может привести к сбою установки компонента во время административной установки.
- Саморегистрированные библиотеки DLL более подвержены ошибкам кодирования, так как новый код, необходимый для DllRegisterServer, обычно отличается для каждой библиотеки DLL. Вместо этого используйте таблицы реестра в базе данных для использования существующего кода, предоставленного установщиком.
- Саморегистрирующий библиотеки DLL иногда могут ссылаться на вспомогательные библиотеки DLL, которые отсутствуют или являются неправильной версией. Напротив, установщик может зарегистрировать библиотеки DLL с помощью таблиц реестра без зависимости от текущего состояния системы.
Заметка
Невозможно указать порядок, в котором установщик регистрирует или отменяет регистрацию библиотек DLL с помощью действий SelfRegModules и SelfUnRegModules. См. указание порядка самостоятельной регистрации.
Ратификация