Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
VSPackages должны сообщить Visual Studio о том, что они установлены и должны быть загружены. Этот процесс выполняется путем написания сведений в реестре. Это типичное задание установщика.
Замечание
Это приемлемая практика во время разработки VSPackage использовать саморегистрацию. Однако партнеры программы Visual Studio Industry Partner (VSIP) не могут отправлять свои продукты с помощью самостоятельной регистрации в рамках настройки.
Записи реестра в пакете установщика Windows обычно выполняются в таблице реестра. Вы также можете зарегистрировать расширения файлов в таблице реестра. Однако установщик Windows обеспечивает встроенную поддержку с помощью программного идентификатора (ProgId), классов, расширений и таблиц команд. Дополнительные сведения см. в таблицах баз данных.
Убедитесь, что записи реестра связаны с компонентом, подходящим для выбранной параллельной стратегии. Например, записи реестра для общего файла должны быть связаны с компонентом установщика Windows. Аналогичным образом записи реестра для файла, зависящего от версии, должны быть связаны с компонентом соответствующего файла. В противном случае установка или удаление VSPackage для одной версии Visual Studio может нарушить работу VSPackage в других версиях. Дополнительные сведения см. в статье "Поддержка нескольких версий Visual Studio".
Замечание
Самый простой способ управления регистрацией — использовать одни и те же данные в одних и том же файлах для регистрации разработчика и регистрации во время установки. Например, некоторые средства разработки установщика могут использовать файл в формате .reg во время сборки. Если разработчики поддерживают .reg файлы для собственной повседневной разработки и отладки, эти же файлы можно включить в установщик автоматически. Если вы не можете автоматически предоставлять общий доступ к данным регистрации, необходимо убедиться, что копия данных регистрации установщика является текущей.
Регистрация неуправляемых VSPackages
Неуправляемые VSPackages (включая созданные шаблоном пакета Visual Studio Package) используют файлы формата .rgs в стиле ATL для хранения сведений о регистрации. Формат файла rgs относится к ATL и обычно не может использоваться as-is средством разработки установки. Сведения о регистрации установщика VSPackage должны храниться отдельно. Например, разработчики могут хранить файлы в .reg формате в синхронизации с изменениями rgs-файла. Файлы .reg можно объединить с RegEdit для разработки программ или для использования установщиком.
Регистрация управляемых VSPackages
Средство RegPkg считывает атрибуты регистрации из управляемого VSPackage и может записывать сведения непосредственно в реестр или записывать файлы формата .reg, которые могут использоваться установщиком.
Замечание
Средство RegPkg не распространяется и не может использоваться для регистрации VSPackage в системе пользователя.
Почему VSPackages не должны саморегистрироваться во время установки
Установщики VSPackage не должны полагаться на самостоятельную регистрацию. На первый взгляд, сохранение значений реестра VSPackage только в САМОМ VSPackage кажется хорошей идеей. Учитывая, что разработчикам нужны значения реестра, доступные для их обычной работы и тестирования, рекомендуется избежать сохранения отдельной копии данных реестра в установщике. Установщик может полагаться на сам VSPackage для записи значений реестра.
Хотя хорошо в теории, самостоятельная регистрация имеет несколько недостатков, которые делают его непригодным для установки VSPackage:
Для правильной поддержки установки, удаления, отката установки и отката удаления требуется создать четыре пользовательских действия для каждого управляемого VSPackage, который самостоятельно регистрируется путем вызова RegPkg.
Для параллельной поддержки может потребоваться создать четыре пользовательских действия, которые вызывают RegSvr32 или RegPkg для каждой поддерживаемой версии Visual Studio.
Установка с саморегистрирующимися модулями не может быть безопасно отменена, потому что нет способа определить, используются ли саморегистрированные ключи другим компонентом или приложением.
Саморегистрирующиеся библиотеки DLL иногда ссылаются на вспомогательные библиотеки DLL, которые отсутствуют или имеют неверную версию. Напротив, установщик Windows может зарегистрировать библиотеки DLL с помощью таблиц реестра без зависимости от текущего состояния системы.
Коду самостоятельной регистрации может быть отказано в доступе к сетевым ресурсам, таким как библиотеки типов, если компонент указан как работающий непосредственно из источника и представлен в таблице SelfReg. Это может привести к сбою установки компонента во время административной установки.