Регистрация и выбор (пакет VSPackage системы управления версиями)
Пакет УПРАВЛЕНИЯ версиями VSPackage должен быть зарегистрирован для предоставления его в Visual Studio. Если зарегистрировано несколько элементов управления версиями VSPackage, пользователь может выбрать, какой VSPackage нужно загрузить в соответствующее время. Дополнительные сведения о VSPackages и способах их регистрации см. в VSPackages.
Регистрация пакета системы управления версиями
Пакет системы управления версиями регистрируется, чтобы среда Visual Studio могли найти ее и запросить поддерживаемые функции. Это в соответствии со схемой задержки загрузки, в которой экземпляр пакета создается только в том случае, если требуются его функции или команды или запрашиваются явным образом.
VSPackages помещает сведения в раздел реестра для конкретной версии, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\X.Y, где X является основным номером версии, а Y — дополнительным номером версии. Эта практика обеспечивает возможность параллельной установки нескольких версий Visual Studio.
Пользовательский интерфейс Visual Studio поддерживает выбор из нескольких установленных подключаемых модулей управления версиями (через пакет адаптера системы управления версиями), а также vsPackage для управления версиями. Одновременно может быть только один активный подключаемый модуль управления версиями или VSPackage. Однако, как описано ниже, интегрированная среда разработки позволяет переключаться между подключаемыми модулями управления версиями и VSPackages с помощью механизма автоматического переключения пакетов на основе решения. Существуют некоторые требования к vsPackage системы управления версиями для включения этого механизма выбора.
Записи реестра
Пакет управления версиями должен иметь три частных идентификатора GUID:
GUID пакета: это основной GUID пакета, который содержит реализацию системы управления версиями (называется ID_Package в этом разделе).
GUID системы управления версиями: это GUID для VSPackage, используемого для регистрации с помощью заглушки системы управления версиями Visual Studio, а также используется в качестве guid контекста пользовательского интерфейса команды. GUID службы управления версиями регистрируется в GUID системы управления версиями. В примере GUID системы управления версиями вызывается ID_SccProvider.
GUID службы управления версиями: это частный GUID службы, используемый Visual Studio (называемый SID_SccPkgService в этом разделе). Помимо этого, пакет управления версиями должен определить другие идентификаторы GUID для VSPackages, окон инструментов и т. д.
Следующие записи реестра должны быть сделаны VSPackage для системы управления версиями:
Имя ключа | Операции |
---|---|
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ |
(по умолчанию) = rg_sz:{ID_SccProvider} |
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ |
(по умолчанию) = rg_sz:<Понятное имя пакета> Service = rg_sz:{SID_SccPkgService} |
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ Name\ |
(по умолчанию) = rg_sz:#<Идентификатор ресурса для локализованного имени> Package = rg_sz:{ID_Package} |
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SolutionPersistence\ <PackageName>\ (Обратите внимание, что имя ключа, SourceCodeControl уже используется Visual Studio и недоступно в качестве выбора для <PackageName>.) |
(по умолчанию) = rg_sz:{ID_Package} |
Выбор пакета управления версиями
Несколько подключаемых модулей API на основе api управления версиями и VSPackage системы управления версиями могут быть одновременно зарегистрированы. Процесс выбора подключаемого модуля управления версиями или VSPackage должен гарантировать, что Visual Studio загружает подключаемый модуль или VSPackage в соответствующее время и может отложить загрузку ненужных компонентов до тех пор, пока они не потребуются. Кроме того, Visual Studio должен удалить весь пользовательский интерфейс из других неактивных VSPackage, включая пункты меню, диалоговые окна и панели инструментов, а также отобразить пользовательский интерфейс для активного ПАКЕТА VSPackage.
Visual Studio загружает VSPackage системы управления версиями при выполнении одной из следующих операций:
Решение открывается (когда решение находится под управлением версиями).
При открытии решения или проекта под управлением версиями интегрированная среда разработки вызывает загрузку решения VSPackage системы управления версиями, которая была назначена для загрузки этого решения.
Выполняются все команды меню VSPackage системы управления версиями.
VSPackage системы управления версиями должен загружать все необходимые компоненты только в том случае, если они будут использоваться (в противном случае — задержка загрузки).
Автоматическое переключение VSPackage на основе решения
С помощью диалогового окна "Параметры Visual Studio" в категории "Управление версиями" можно переключать элементы управления версиями вручную. Автоматическое переключение пакетов на основе решения означает, что пакет управления версиями, назначенный для конкретного решения, автоматически активируется при открытии этого решения. Каждый пакет управления версиями должен реализовывать SetActive и SetInactive. Visual Studio обрабатывает переключение между подключаемыми модулями управления версиями (реализуя подключаемый модуль управления версиями) и VSPackages системы управления версиями.
Пакет адаптера системы управления версиями используется для переключения на подключаемый подключаемый модуль api на основе любого подключаемого модуля управления версиями. Процесс переключения на промежуточный пакет адаптера управления версиями и определение подключаемого модуля управления версиями, который должен быть установлен на активный или неактивный, является прозрачным для пользователя. Пакет адаптера всегда активен при активном подключаемом модуле управления версиями. Переключение между двумя подключаемыми модулями управления версиями сводится к простой загрузке и выгрузке библиотеки DLL подключаемого модуля. Однако переключение на VSPackage управления версиями включает взаимодействие с интегрированной среды разработки для загрузки соответствующего VSPackage.
VSPackage системы управления версиями вызывается при открытии любого решения, а раздел реестра для VSPackage находится в файле решения. При открытии решения Visual Studio находит значение реестра и загружает соответствующий VSPackage системы управления версиями. Все элементы управления версиями VSPackage должны содержать записи реестра, описанные выше. Решение, которое находится под управлением версиями, помечается как связанное с определенным элементом управления версиями VSPackage. VSPackages системы управления версиями должен реализовать IVsSolutionPersistence функцию автоматического переключения VSPackage на основе решения.
Пользовательский интерфейс Visual Studio для выбора и переключения пакетов
Visual Studio предоставляет пользовательский интерфейс для VSPackage и выбора подключаемых модулей в диалоговом окне "Параметры " в категории "Управление версиями ". Он позволяет пользователю выбрать подключаемый модуль управления версиями или VSPackage. Раскрывающийся список включает в себя:
Все установленные пакеты системы управления версиями
Все установленные подключаемые модули управления версиями
Параметр none, который отключает управление исходным кодом
Отображается только пользовательский интерфейс для выбора активного элемента управления версиями. Выбор VSPackage скрывает пользовательский интерфейс для предыдущего ПАКЕТА VSPackage и отображает пользовательский интерфейс для нового. Активный VSPackage выбирается на основе каждого пользователя. Если пользователь имеет несколько копий Visual Studio, открытых одновременно, каждый из них может использовать другой активный VSPackage. Если несколько пользователей вошли на один и тот же компьютер, каждый пользователь может иметь отдельные экземпляры Visual Studio open, каждый из которых имеет другой активный VSPackage. При закрытии пользователем нескольких экземпляров Visual Studio пакет управления версиями VSPackage, который был активен для последнего открытого решения, становится элементом управления версиями VSPackage по умолчанию, чтобы быть активным при перезапуске.
В отличие от предыдущих версий Visual Studio, перезапуск интегрированной среды разработки больше не является единственным способом переключения VSPackages системы управления версиями. Выбор VSPackage автоматически. Для переключения пакетов требуются права пользователя Windows (не Администратор istrator или Power User).