Compartir a través de


Instalación de un complemento de control de código fuente

La creación de un complemento de control de código fuente implica tres pasos:

  1. Cree un archivo DLL con las funciones definidas en la sección referencia de api del complemento de control de código fuente de esta documentación.

  2. Implemente las funciones definidas por la API del complemento de control de código fuente. Cuando Visual Studio lo llama, haga que las interfaces y los cuadros de diálogo estén disponibles en el complemento.

  3. Registre el archivo DLL mediante la realización de entradas del Registro adecuadas.

Integración con Visual Studio

Visual Studio admite complementos de control de código fuente que se ajustan a la API del complemento de control de código fuente.

Registro del complemento de control de código fuente

Antes de que un entorno de desarrollo integrado (IDE) en ejecución pueda llamar al sistema de control de código fuente, primero debe encontrar el archivo DLL del complemento de control de código fuente que exporta la API.

Para registrar el archivo DLL del complemento de control de código fuente

  1. Agregue dos entradas en la clave HKEY_LOCAL_MACHINE de la subclave SOFTWARE que especifica la subclave de nombre de la empresa seguida de la subclave del nombre del producto. El patrón es HKEY_LOCAL_MACHINE\SOFTWARE\<company name>\product name>\<<entry> = value. Las dos entradas siempre se denominan SCCServerName y SCCServerPath. Cada una es una cadena normal.

    Por ejemplo, si el nombre de la empresa es Microsoft y el producto de control de código fuente se denomina Source Caja fuerte, esta ruta de acceso del Registro sería HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Caja fuerte. En esta subclave, la primera entrada, SCCServerName, es una cadena legible por el usuario que denomina el producto. La segunda entrada, SCCServerPath, es la ruta de acceso completa al archivo DLL del complemento de control de código fuente al que debe conectarse el IDE. A continuación se proporcionan entradas del Registro de ejemplo:

    Entrada del Registro de ejemplo Valor de ejemplo
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Caja fuerte\SCCServerName Microsoft Visual SourceSafe
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Caja fuerte\SCCServerPath c:\vss\win32\ssscc.dll

    Nota:

    SCCServerPath es la ruta de acceso completa al complemento Source Caja fuerte. El complemento de control de código fuente usará nombres de empresa y productos diferentes, pero las mismas rutas de acceso de entrada del Registro.

  2. Las siguientes entradas del Registro opcionales se pueden usar para modificar el comportamiento del complemento de control de código fuente. Estas entradas van en la misma subclave que SccServerName y SccServerPath.

    • La entrada HideInVisualStudioregistry se puede usar si no desea que el complemento de control de código fuente aparezca en la lista Selección de complementos de Visual Studio. Esta entrada también afectará al cambio automático al complemento de control de código fuente. Un posible uso de esta entrada es si proporciona un paquete de control de código fuente que reemplaza el complemento de control de código fuente, pero quiere facilitar la migración del usuario desde el complemento de control de código fuente al paquete de control de código fuente. Cuando se instala el paquete de control de código fuente, establece esta entrada del Registro, que oculta el complemento.

      HideInVisualStudio es un valor DWORD y se establece en 1 para ocultar el complemento o 0 para mostrar el complemento. Si no aparece la entrada del Registro, el comportamiento predeterminado es mostrar el complemento.

    • La entrada del Registro DisableSccManager se puede usar para deshabilitar u ocultar la opción de menú Iniciar <servidor de control de> código fuente que normalmente aparece en el submenú Control> de código fuente de archivos. Al seleccionar esta opción de menú, se llama a la función SccRunScc . Es posible que el complemento de control de código fuente no admita un programa externo y, por tanto, desee deshabilitar o incluso ocultar la opción de menú Iniciar .

      DisableSccManager es un valor DWORD y se establece en 0 para habilitar la opción de menú Iniciar <servidor de control de> código fuente, establecer en 1 para deshabilitar la opción de menú y establecer en 2 para ocultar la opción de menú. Si esta entrada del Registro no aparece, el comportamiento predeterminado es mostrar la opción de menú.

    Entrada del Registro de ejemplo Valor de ejemplo
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Caja fuerte\HideInVisualStudio 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Source Caja fuerte\DisableSccManager 1
  3. Agregue la subclave SourceCodeControlProvider, en la clave HKEY_LOCAL_MACHINE de la subclave SOFTWARE .

    En esta subclave, la entrada del Registro ProviderRegKey se establece en una cadena que representa la subclave que ha colocado en el registro en el paso 1. El patrón es HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey = SOFTWARE\<company name>\<product name.>

    A continuación se muestra el contenido de ejemplo de esta subclave.

    Entrada del Registro Valor de ejemplo
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\ProviderRegKey SOFTWARE\Microsoft\Source Caja fuerte

    Nota:

    El complemento de control de código fuente usará la misma subclave y nombres de entrada, pero el valor será diferente.

  4. Cree una subclave denominada InstalledSCCProviders en la subclave SourceCodeControlProvider y, a continuación, coloque una entrada en esa subclave.

    El nombre de esta entrada es el nombre legible por el usuario del proveedor (el mismo que el valor especificado para la entrada SCCServerName) y el valor es, una vez más, la subclave creada en el paso 1. El patrón es HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\<display name> = SOFTWARE\<company name>\<product name.>

    Por ejemplo:

    Entrada del Registro de ejemplo Valor de ejemplo
    HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders\Microsoft Visual Source Caja fuerte SOFTWARE\Microsoft\Source Caja fuerte

    Nota:

    Puede haber varios complementos de control de código fuente registrados de esta manera. Así es como Visual Studio busca todos los complementos basados en API de control de código fuente instalados.

Cómo localiza un IDE el archivo DLL

El IDE de Visual Studio tiene dos maneras de buscar el archivo DLL del complemento de control de código fuente:

  • Busque el complemento de control de código fuente predeterminado y conéctese a él de forma silenciosa.

  • Busque todos los complementos de control de código fuente registrados, desde los que el usuario elige uno.

    Para buscar el archivo DLL de la primera manera, el IDE busca en la subclave HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider para la entrada ProviderRegKey. El valor de esta entrada apunta a otra subclave. A continuación, el IDE busca una entrada denominada SccServerPath en esa segunda subclave en HKEY_LOCAL_MACHINE. El valor de esta entrada apunta el IDE al archivo DLL.

Nota:

El IDE no carga archivos DLL desde rutas de acceso relativas (por ejemplo, .\NewProvider.DLL). Se debe especificar una ruta de acceso completa al archivo DLL (por ejemplo, c:\Providers\NewProvider.DLL). Esto refuerza la seguridad del IDE evitando la carga de archivos DLL de complementos no autorizados o suplantados.

Para buscar el archivo DLL de la segunda manera, el IDE busca en la subclave HKEY_LOCAL_MACHINE\Software\SourceCodeControlProvider\InstalledSCCProviders para todas las entradas. Cada entrada tiene un nombre y un valor. El IDE muestra una lista de estos nombres para el usuario. Cuando el usuario elige un nombre, el IDE busca el valor del nombre seleccionado que apunta a una subclave. El IDE busca una entrada denominada SccServerPath en esa subclave en HKEY_LOCAL_MACHINE. El valor de esa entrada apunta el IDE al archivo DLL correcto.

Un complemento de control de código fuente debe admitir ambas formas de buscar el archivo DLL y, por lo tanto, establece ProviderRegKey, sobrescribir cualquier configuración anterior. Lo que es más importante, debe agregarse a la lista de InstalledSccProviders para que el usuario pueda elegir qué complemento de control de código fuente se va a usar.

Nota:

Dado que se usa la clave HKEY_LOCAL_MACHINE , solo se puede registrar un complemento de control de código fuente como complemento de control de código fuente predeterminado en una máquina determinada (sin embargo, Visual Studio permite a los usuarios determinar qué complemento de control de código fuente quieren usar realmente para una solución determinada). Durante el proceso de instalación, compruebe si ya está establecido un complemento de control de código fuente; Si es así, pregunte al usuario si desea establecer o no el nuevo complemento de control de código fuente que se va a instalar como valor predeterminado. Durante la desinstalación, no quite otras subclaves del Registro comunes a todos los complementos de control de código fuente en HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider; quite solo la subclave SCC determinada.

Cómo detecta el IDE la compatibilidad con la versión 1.2/1.3

¿Cómo detecta Visual Studio si un complemento admite la funcionalidad 1.2 y 1.3 de la API de control de código fuente? Para declarar la funcionalidad avanzada, el complemento de control de código fuente debe implementar la función correspondiente:

En primer lugar, Visual Studio comprueba el valor devuelto llamando a SccGetVersion. Debe ser mayor o igual que 1,2.

A continuación, Visual Studio determina si se admite la nueva funcionalidad determinada examinando el lpSccCaps argumento en SccInitialize.

Si se cumplen ambas condiciones, se puede llamar a las nuevas funciones admitidas en las versiones 1.2 y 1.3.