Структура VSPackage (пакет VSPackage системы управления версиями)
Пакет SDK для системы управления версиями предоставляет рекомендации по созданию VSPackage, позволяющему реализации системы управления версиями интегрировать свои функции управления версиями с средой Visual Studio. VSPackage — это COM-компонент, который обычно загружается по запросу интегрированной средой разработки Visual Studio на основе служб, объявленных пакетом в записях реестра. Каждый ПАКЕТ VSPackage должен реализовывать IVsPackage. VSPackage обычно использует службы, предоставляемые интегрированной интегрированной среду разработки Visual Studio, и проверит некоторые службы собственного.
VSPackage объявляет его элементы меню и устанавливает состояние элемента по умолчанию через VSCT-файл. Интегрированная среда разработки Visual Studio отображает элементы меню в этом состоянии до загрузки VSPackage. Впоследствии реализация QueryStatus метода VSPackage вызывается для включения или отключения элементов меню.
Характеристики пакета управления версиями
VSPackage системы управления версиями глубоко интегрирован в Visual Studio. К семантике VSPackage относятся:
Интерфейс, реализуемый в силу того, что vsPackage (
IVsPackage
интерфейс)Реализация команды пользовательского IOleCommandTarget интерфейса (VSCT-файл и реализация интерфейса)
Регистрация VSPackage в Visual Studio.
VSPackage системы управления версиями должен взаимодействовать с этими другими сущностями Visual Studio:
Проекты
Редакторы
Решения
Windows
Запущенная таблица документов
Службы среды Visual Studio, которые могут использоваться
Служба SVsRegisterScciProvider
Интерфейсы VSIP, реализованные и вызываемые
Пакет управления версиями — это VSPackage, поэтому он может взаимодействовать непосредственно с другими пакетами VSPackage, зарегистрированными в Visual Studio. Чтобы обеспечить полную функциональность системы управления версиями, VSPackage может работать с интерфейсами, предоставляемыми проектами или оболочкой.
Каждый проект в Visual Studio должен быть распознана IVsProject3 как проект в интегрированной среде разработки Visual Studio. Однако этот интерфейс недостаточно специализирован для управления версиями. Проекты, которые, как ожидается, находятся под управлением версиями, реализуются IVsSccProject2. Этот интерфейс используется VSPackage для запроса проекта к содержимому и предоставления ему глифов и сведений о привязке (сведения, необходимые для установления соединения между расположением сервера и расположением диска проекта, который находится под управлением версиями).
VSPackage системы управления версиями реализует IVsSccManager2, что, в свою очередь, позволяет проектам регистрироваться для управления версиями и получать глифы состояния.
Полный список интерфейсов, которые должен учитывать VSPackage системы управления версиями, см. в разделе "Связанные службы и интерфейсы".