Registro y selección (VSPackage de control de código fuente)

Se debe registrar un vsPackage de control de código fuente para exponerlo a Visual Studio. Si se registra más de un VSPackage de control de código fuente, el usuario puede seleccionar qué VSPackage se va a cargar en los momentos adecuados. Consulte VSPackages para obtener más información sobre VSPackages y cómo registrarlos.

Registro de un paquete de control de código fuente

El paquete de control de código fuente se registra para que el entorno de Visual Studio pueda encontrarlo y consultar sus características admitidas. Esto se ajusta a un esquema de carga retrasada en el que se crea una instancia de un paquete solo cuando se requieren sus características o comandos o se solicitan explícitamente.

VSPackages colocan información en una clave del Registro específica de la versión, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\X.Y, donde X es el número de versión principal e Y es el número de versión secundaria. Esta práctica proporciona la capacidad de admitir la instalación en paralelo de varias versiones de Visual Studio.

La interfaz de usuario (UI) de Visual Studio admite la selección entre varios complementos de control de código fuente instalados (a través del paquete del adaptador de control de código fuente), así como vsPackages de control de código fuente. Solo puede haber un complemento de control de código fuente activo o VSPackage a la vez. Sin embargo, como se describe a continuación, el IDE permite cambiar entre complementos de control de código fuente y VSPackages a través de un mecanismo automático de intercambio de paquetes basado en soluciones. Hay algunos requisitos en la parte del VSPackage de control de código fuente para habilitar este mecanismo de selección.

Entradas del Registro

Un paquete de control de código fuente necesita tres GUID privados:

  • GUID del paquete: este es el GUID principal del paquete que contiene la implementación del control de código fuente (denominada ID_Package en esta sección).

  • GUID de control de código fuente: se trata de un GUID para el VSPackage de control de código fuente que se usa para registrarse con el código auxiliar del control de código fuente de Visual Studio y también se usa como GUID de contexto de interfaz de usuario de comandos. El GUID del servicio de control de código fuente se registra en el GUID del control de código fuente. En el ejemplo, el GUID del control de código fuente se denomina ID_SccProvider.

  • GUID del servicio de control de código fuente: este es el GUID de servicio privado que usa Visual Studio (denominado SID_SccPkgService en esta sección). Además de esto, el paquete de control de código fuente debe definir otros GUID para VSPackages, ventanas de herramientas, etc.

    Las siguientes entradas del Registro deben realizarse mediante un VSPackage de control de código fuente:

Nombre de clave Movimientos
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ (valor predeterminado) = rg_sz:{ID_SccProvider}
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ (valor predeterminado) = rg_sz:<Nombre descriptivo del paquete>

Servicio = rg_sz:{SID_SccPkgService}
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ Name\ (valor predeterminado) = rg_sz:#<Id. de recurso para el nombre localizado>

Package = rg_sz:{ID_Package}
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SolutionPersistence\ <PackageName>\

(Tenga en cuenta que Visual Studio ya usa el nombre de clave , SourceCodeControly no está disponible como opción para <PackageName>).
(valor predeterminado) = rg_sz:{ID_Package}

Selección de un paquete de control de código fuente

Varios complementos basados en API de control de código fuente y vsPackages de control de código fuente pueden estar registrados simultáneamente. El proceso de selección de un complemento de control de código fuente o VSPackage debe asegurarse de que Visual Studio carga el complemento o VSPackage en el momento adecuado y puede aplazar la carga de componentes innecesarios hasta que sean necesarios. Además, Visual Studio debe quitar toda la interfaz de usuario de otros VSPackage inactivos, incluidos los elementos de menú, los cuadros de diálogo y las barras de herramientas, y mostrar la interfaz de usuario para el VSPackage activo.

Visual Studio carga un VSPackage de control de código fuente cuando se realiza alguna de las siguientes operaciones:

  • Se abre la solución (cuando la solución está bajo control de código fuente).

    Cuando se abre una solución o un proyecto bajo el control de código fuente, el IDE hace que se cargue el VSPackage de control de código fuente designado para esa solución.

  • Se ejecuta cualquiera de los comandos de menú del control de código fuente VSPackage.

    Un VSPackage de control de código fuente debe cargar los componentes que necesita solo cuando realmente se van a usar (lo que se conoce como carga retrasada).

Intercambio automático de VSPackage basado en soluciones

Puede intercambiar manualmente vsPackages de control de código fuente a través del cuadro de diálogo Opciones de Visual Studio en la categoría Control de código fuente. El intercambio automático de paquetes basado en soluciones significa que un paquete de control de código fuente designado para una solución determinada se establece automáticamente en activo cuando se abre esa solución. Todos los paquetes de control de código fuente deben implementar SetActive y SetInactive. Visual Studio controla el conmutador entre los complementos de control de código fuente (implementando la API del complemento de control de código fuente) y vsPackages de control de código fuente.

El paquete del adaptador de control de código fuente se usa para cambiar a cualquier complemento basado en api de control de código fuente. El proceso de cambiar al paquete intermedio del adaptador de control de código fuente y determinar qué complemento de control de código fuente debe establecerse en activo o inactivo es transparente para el usuario. El paquete de adaptador siempre está activo cuando cualquier complemento de control de código fuente está activo. Cambiar entre dos complementos de control de código fuente equivale simplemente a cargar y descargar el archivo DLL del complemento. Sin embargo, cambiar a un VSPackage de control de código fuente implica interactuar con el IDE para cargar el VSPackage adecuado.

Se llama a un control de código fuente VSPackage cuando se abre cualquier solución y la clave del Registro para VSPackage se encuentra en el archivo de solución. Cuando se abre la solución, Visual Studio busca el valor del Registro y carga el VSPackage de control de código fuente adecuado. Todos los VSPackages de control de código fuente deben tener las entradas del Registro descritas anteriormente. Una solución que está bajo control de código fuente se marca como asociada a un control de código fuente determinado VSPackage. El control de código fuente VSPackages debe implementar para habilitar el IVsSolutionPersistence intercambio automático de VSPackage basado en soluciones.

Interfaz de usuario de Visual Studio para selección y cambio de paquetes

Visual Studio proporciona una interfaz de usuario para el control de código fuente VSPackage y la selección de complementos en el cuadro de diálogo Opciones de la categoría Control de código fuente. Permite al usuario seleccionar el complemento de control de código fuente activo o VSPackage. Una lista desplegable incluye:

  • Todos los paquetes de control de código fuente instalados

  • Todos los complementos de control de código fuente instalados

  • Una opción "none", que deshabilita el control de código fuente

    Solo la interfaz de usuario de la opción de control de código fuente activa está visible. La selección vsPackage oculta la interfaz de usuario del VSPackage anterior y muestra la interfaz de usuario para la nueva. VsPackage activo se selecciona por usuario. Si un usuario tiene varias copias de Visual Studio abiertas simultáneamente, cada una de ellas puede usar un VSPackage activo diferente. Si varios usuarios inician sesión en el mismo equipo, cada usuario puede tener instancias independientes de Visual Studio abiertas, cada una con un VSPackage activo diferente. Cuando un usuario cierra varias instancias de Visual Studio, el VSPackage de control de código fuente que estaba activo para la última solución abierta se convierte en el VSPackage de control de código fuente predeterminado, que se va a establecer activo al reiniciar.

    A diferencia de las versiones anteriores de Visual Studio, un reinicio del IDE ya no es la única manera de cambiar los VSPackages del control de código fuente. La selección de VSPackage es automática. La conmutación de paquetes requiere privilegios de usuario de Windows (no Administración istrator o Power User).