Установка подключаемого модуля управления версиями

Создание подключаемого модуля управления версиями включает три шага.

  1. Создайте библиотеку DLL с функциями, определенными в справочнике по API подключаемого модуля управления версиями в этой документации.

  2. Реализуйте определяемые API функции подключаемого модуля управления версиями. Когда Visual Studio вызывает его, сделайте интерфейсы и диалоговые окна доступными из подключаемого модуля.

  3. Зарегистрируйте библиотеку DLL, выполнив соответствующие записи реестра.

Интеграция с Visual Studio

Visual Studio поддерживает подключаемые модули управления версиями, соответствующие API подключаемого модуля управления версиями.

Регистрация подключаемого модуля управления версиями

Прежде чем запущенная интегрированная среда разработки (IDE) может вызвать систему управления версиями, сначала необходимо найти библиотеку DLL системы управления версиями, экспортируемую API.

Регистрация подключаемого модуля управления версиями DLL

  1. Добавьте две записи в раздел HKEY_LOCAL_MACHINE в подразделе SOFTWARE , который указывает подключ имени компании, за которым следует подраздел имени продукта. Шаблон — HKEY_LOCAL_MACHINE\SOFTWARE\<company name>\<product name>\<entry = >value. Эти две записи всегда называются SCCServerName и SCCServerPath. Каждая из них является обычной строкой.

    Например, если ваша компания называется Корпорацией Майкрософт, а продукт системы управления версиями называется Source Сейф этот путь реестра будет HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Сейф. В этом подразделе первая запись SCCServerName — это читаемая пользователем строка, именующая продукт. Вторая запись SCCServerPath — это полный путь к библиотеке DLL подключаемого модуля управления версиями, к которому должна подключаться интегрированная среда разработки. Ниже приведены примеры записей реестра:

    Пример записи реестра Пример значения
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Сейф\SCCServerName Microsoft Visual SourceSafe
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Сейф\SCCServerPath c:\vss\win32\ssscc.dll

    Примечание.

    SCCServerPath — это полный путь к подключаемым модулям Source Сейф. Подключаемый модуль управления версиями будет использовать разные имена компаний и продуктов, но те же пути записи реестра.

  2. Следующие необязательные записи реестра можно использовать для изменения поведения подключаемого модуля управления версиями. Эти записи идут в том же подразделе, что и SccServerName и SccServerPath.

    • Запись HideInVisualStudioregistry может использоваться, если вы не хотите, чтобы подключаемый модуль управления версиями отображался в списке выбора подключаемых модулей Visual Studio. Эта запись также влияет на автоматическое переключение на подключаемый модуль управления версиями. Одно из возможных вариантов для этой записи заключается в том, что вы предоставляете пакет управления версиями, который заменяет подключаемый модуль управления версиями, но вы хотите упростить переход от использования подключаемого модуля системы управления версиями в пакет управления версиями. Когда пакет управления версиями установлен, он задает эту запись реестра, которая скрывает подключаемый модуль.

      HideInVisualStudio — это значение DWORD и имеет значение 1 , чтобы скрыть подключаемый модуль или 0 , чтобы отобразить подключаемый модуль. Если запись реестра не отображается, поведение по умолчанию — показать подключаемый модуль.

    • Запись реестра DisableSccManager может использоваться для отключения или скрытия параметра меню "Пуск <сервера> управления версиями", которое обычно отображается в подменю управления версиями файлов>. При выборе этого параметра меню вызывается функция SccRunScc . Подключаемый модуль управления версиями может не поддерживать внешнюю программу, поэтому вы можете отключить или даже скрыть пункт меню "Запуск ".

      DisableSccManager — это значение DWORD и имеет значение 0 , чтобы включить параметр меню "Пуск <сервера> управления версиями", установите значение 1 , чтобы отключить параметр меню, и установите значение 2 , чтобы скрыть параметр меню. Если эта запись реестра не отображается, поведение по умолчанию — показать параметр меню.

    Пример записи реестра Пример значения
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Сейф\HideInVisualStudio 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Сейф\DisableSccManager 1
  3. Добавьте подраздел SourceCodeControlProvider в HKEY_LOCAL_MACHINE ключ в подразделе SOFTWARE.

    В этом подразделе для записи реестра ProviderRegKey задана строка, представляющая вложенный ключ, который был помещен в реестр на шаге 1. Шаблон — HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey = SOFTWARE\<company name>\<product name.>

    Ниже приведен пример содержимого для этого подраздела.

    Параметр реестра Пример значения
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey SOFTWARE\Microsoft\Source Сейф

    Примечание.

    Подключаемый модуль управления версиями будет использовать те же имена подключа и записи, но значение будет отличаться.

  4. Создайте подраздел с именем InstalledSCCProviders в подразделе SourceCodeControlProvider , а затем поместите одну запись в этот подраздел.

    Имя этой записи — это имя поставщика, доступное для чтения пользователем (аналогично значению, указанному для записи SCCServerName), а значение — еще раз, подключ, созданный на шаге 1. Шаблон — HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\<display name = >SOFTWARE\<company name\<product name.>>

    Например:

    Пример записи реестра Пример значения
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\Microsoft Visual Source Сейф SOFTWARE\Microsoft\Source Сейф

    Примечание.

    Таким образом можно зарегистрировать несколько подключаемых модулей управления версиями. Вот как Visual Studio находит все установленные подключаемые модули управления версиями на основе API.

Как интегрированная среда разработки находит библиотеку DLL

Интегрированная среда разработки Visual Studio имеет два способа поиска подключаемого модуля управления версиями DLL:

  • Найдите подключаемый модуль управления версиями по умолчанию и подключитесь к нему автоматически.

  • Найдите все зарегистрированные подключаемые модули управления версиями, из которых пользователь выбирает один.

    Чтобы сначала найти библиотеку DLL, интегрированная среда разработки будет выглядеть под подразделом HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider для записи ProviderRegKey. Значение этой записи указывает на другой подраздел. Затем интегрированная среда разработки ищет запись с именем SccServerPath в этом втором подразделе в HKEY_LOCAL_MACHINE. Значение этой записи указывает интегрированной среде разработки в библиотеку DLL.

Примечание.

Интегрированная среда разработки не загружает библиотеки DLL из относительных путей (например, .\NewProvider.DLL). Полный путь к библиотеке DLL должен быть указан (например, c:\Providers\NewProvider.DLL). Это повышает безопасность интегрированной среды разработки, предотвращая загрузку несанкционированных или олицетворенных библиотек DLL.

Чтобы найти библиотеку DLL во втором способе, интегрированная среда разработки будет выглядеть под подразделом HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider\InstalledSCCProviders для всех записей. Каждая запись имеет имя и значение. Интегрированная среда разработки отображает список этих имен пользователю. Когда пользователь выбирает имя, интегрированная среда разработки находит значение для выбранного имени, указывающего на вложенный ключ. Интегрированная среда разработки ищет запись с именем SccServerPath в этом подразделе в HKEY_LOCAL_MACHINE. Значение этой записи указывает интегрированной среде разработки на правильную библиотеку DLL.

Подключаемый модуль управления версиями должен поддерживать оба способа поиска библиотеки DLL и, следовательно, задает ProviderRegKey, перезаписав любой предыдущий параметр. Более важно, что он должен добавить себя в список УстановленныхSccProviders , чтобы пользователь может выбрать, какой подключаемый модуль управления версиями будет использоваться.

Примечание.

Так как используется ключ HKEY_LOCAL_MACHINE, можно зарегистрировать только один подключаемый модуль системы управления версиями по умолчанию на данном компьютере (однако Visual Studio позволяет пользователям определить, какой подключаемый модуль управления версиями они хотят использовать для конкретного решения). Во время установки проверка, чтобы узнать, установлен ли подключаемый модуль системы управления версиями. Если это так, попросите пользователя установить новый подключаемый модуль управления версиями в качестве стандартного. Во время удаления не удаляйте другие подразделы реестра, которые являются общими для всех подключаемых модулей управления версиями в HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider; удалите только определенный подраздел SCC.

Как интегрированная среда разработки обнаруживает поддержку версии 1.2/1.3

Как Visual Studio определяет, поддерживает ли подключаемый модуль подключаемый модуль управления версиями 1.2 и 1.3 функциональные возможности? Чтобы объявить расширенную возможность, подключаемый модуль управления версиями должен реализовать соответствующую функцию:

Сначала Visual Studio проверка значение, возвращаемое путем вызова SccGetVersion. Оно должно быть больше или равно 1,2.

Затем Visual Studio определяет, поддерживается ли конкретная новая возможность, проверив lpSccCaps аргумент в SccInitialize.

Если выполняются оба этих условия, можно вызвать новые функции, поддерживаемые в версиях 1.2 и 1.3.