Inscription et sélection (VSPackage de contrôle de code source)

Un VSPackage de contrôle de code source doit être inscrit pour l’exposer à Visual Studio. Si plusieurs VSPackage de contrôle de code source sont inscrits, l’utilisateur peut sélectionner le VSPackage à charger à des moments appropriés. Pour plus d’informations sur les VSPackages et comment les inscrire, consultez VSPackages.

Inscription d’un package de contrôle de code source

Le package de contrôle de code source est inscrit afin que l’environnement Visual Studio puisse le trouver et rechercher ses fonctionnalités prises en charge. Cela est conforme à un schéma de chargement différé dans lequel une instance d’un package est créée uniquement lorsque ses fonctionnalités ou commandes sont requises ou sont demandées explicitement.

Les VSPackages placent des informations dans une clé de Registre spécifique à la version, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\X.Y, où X est le numéro de version principal et Y est le numéro de version secondaire. Cette pratique permet de prendre en charge l’installation côte à côte de plusieurs versions de Visual Studio.

L’interface utilisateur de Visual Studio prend en charge la sélection parmi plusieurs plug-ins de contrôle de code source installés (via le package d’adaptateur de contrôle de code source) ainsi que des VSPackages de contrôle de code source. Il ne peut y avoir qu’un seul plug-in de contrôle de code source actif ou VSPackage à la fois. Toutefois, comme décrit ci-dessous, l’IDE permet de basculer entre les plug-ins de contrôle de code source et les VSPackages par le biais d’un mécanisme d’échange automatique de packages basé sur une solution. Il existe certaines exigences de la part du VSPackage du contrôle de code source pour activer ce mécanisme de sélection.

Entrées de Registre

Un package de contrôle de code source a besoin de trois GUID privés :

  • GUID du package : il s’agit du GUID principal du package qui contient l’implémentation du contrôle de code source (appelée ID_Package dans cette section).

  • GUID du contrôle de code source : il s’agit d’un GUID pour le contrôle de code source VSPackage utilisé pour s’inscrire auprès du stub du contrôle de code source Visual Studio et est également utilisé comme GUID de contexte d’interface utilisateur de commande. Le GUID du service de contrôle de code source est inscrit sous le GUID du contrôle de code source. Dans l’exemple, le GUID du contrôle de code source est appelé ID_SccProvider.

  • GUID du service de contrôle de code source : il s’agit du GUID de service privé utilisé par Visual Studio (appelé SID_SccPkgService dans cette section). En plus de cela, le package de contrôle de code source doit définir d’autres GUID pour vsPackages, fenêtres d’outils, et ainsi de suite.

    Les entrées de Registre suivantes doivent être effectuées par un VSPackage de contrôle de code source :

Nom de clé entrepôt
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ (par défaut) = rg_sz :{ID_SccProvider}
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ (valeur par défaut) = rg_sz :<Nom convivial du package>

Service = rg_sz :{SID_SccPkgService}
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ VisualStudio\ X.Y\ SourceControlProviders\ {ID_SccProvider}\ Name\ (par défaut) = rg_sz :#<ID de ressource pour le nom localisé>

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

(Notez que le nom de clé, est SourceCodeControldéjà utilisé par Visual Studio et n’est pas disponible comme choix pour <PackageName>.)
(par défaut) = rg_sz :{ID_Package}

Sélection d’un package de contrôle de code source

Plusieurs plug-ins basés sur l’API de contrôle de code source et vsPackages de contrôle de code source peuvent être inscrits simultanément. Le processus de sélection d’un plug-in de contrôle de code source ou vsPackage doit s’assurer que Visual Studio charge le plug-in ou VSPackage au moment approprié et peut différer le chargement des composants inutiles jusqu’à ce qu’ils soient requis. En outre, Visual Studio doit supprimer toutes les interfaces utilisateur d’autres VSPackage inactifs, notamment les éléments de menu, les boîtes de dialogue et les barres d’outils, et afficher l’interface utilisateur pour le VSPackage actif.

Visual Studio charge un VSPackage de contrôle de code source lorsque l’une des opérations suivantes est effectuée :

  • La solution est ouverte (lorsque la solution est sous contrôle de code source).

    Lorsqu’une solution ou un projet sous contrôle de code source est ouvert, l’IDE entraîne le chargement du VSPackage du contrôle de code source désigné pour cette solution.

  • L’une des commandes de menu du contrôle de code source VSPackage est exécutée.

    Un VSPackage de contrôle de code source doit charger tous les composants dont il a besoin uniquement lorsqu’ils seront réellement utilisés (autrement appelé chargement différé).

Permutation VSPackage basée sur une solution automatique

Vous pouvez permuter manuellement des VSPackages de contrôle de code source via la boîte de dialogue Options de Visual Studio sous la catégorie Contrôle de code source. L’échange automatique de packages basés sur une solution signifie qu’un package de contrôle de code source désigné pour une solution particulière est automatiquement défini sur actif lorsque cette solution est ouverte. Chaque package de contrôle de code source doit implémenter SetActive et SetInactive. Visual Studio gère le commutateur entre les plug-ins de contrôle de code source (implémentant l’API plug-in de contrôle de code source) et les VSPackages de contrôle de code source.

Le package de l’adaptateur de contrôle de code source est utilisé pour basculer vers n’importe quel plug-in basé sur l’API de contrôle de code source. Le processus de basculement vers le package intermédiaire de l’adaptateur de contrôle de code source et la détermination du plug-in de contrôle de code source devant être défini sur actif ou inactif est transparent pour l’utilisateur. Le package d’adaptateur est toujours actif lorsqu’un plug-in de contrôle de code source est actif. Le basculement entre deux plug-ins de contrôle de code source se limite au chargement et au déchargement de la DLL de plug-in. Le passage à un VSPackage de contrôle de code source implique toutefois d’interagir avec l’IDE pour charger le VSPackage approprié.

Un VSPackage de contrôle de code source est appelé lorsqu’une solution est ouverte et que la clé de Registre du VSPackage se trouve dans le fichier de solution. Lorsque la solution est ouverte, Visual Studio recherche la valeur de Registre et charge le VSPackage de contrôle de code source approprié. Tous les VSPackages du contrôle de code source doivent avoir les entrées de Registre décrites ci-dessus. Une solution sous contrôle de code source est marquée comme associée à un VSPackage de contrôle de code source particulier. Les VSPackages de contrôle de code source doivent implémenter l’activation IVsSolutionPersistence de l’échange VSPackage automatique basé sur la solution.

Interface utilisateur visual Studio pour la sélection et le changement de package

Visual Studio fournit une interface utilisateur pour le contrôle de code source VSPackage et la sélection du plug-in dans la boîte de dialogue Options sous la catégorie Contrôle de code source. Il permet à l’utilisateur de sélectionner le plug-in de contrôle de code source actif ou VSPackage. Une liste déroulante inclut les éléments suivants :

  • Tous les packages de contrôle de code source installés

  • Tous les plug-ins de contrôle de code source installés

  • Option « none », qui désactive le contrôle de code source

    Seule l’interface utilisateur du choix de contrôle de code source actif est visible. La sélection VSPackage masque l’interface utilisateur pour le VSPackage précédent et affiche l’interface utilisateur pour la nouvelle. Le VSPackage actif est sélectionné par utilisateur. Si un utilisateur a plusieurs copies de Visual Studio ouvertes simultanément, chacun d’eux peut utiliser un VSPackage actif différent. Si plusieurs utilisateurs sont connectés au même ordinateur, chaque utilisateur peut avoir des instances distinctes de Visual Studio ouvertes, chacune avec un VSPackage actif différent. Lorsque plusieurs instances de Visual Studio sont fermées par un utilisateur, le VSPackage de contrôle de code source qui était actif pour la dernière solution ouverte devient le VSPackage de contrôle de code source par défaut, à définir actif lors du redémarrage.

    Contrairement aux versions précédentes de Visual Studio, un redémarrage de l’IDE n’est plus le seul moyen de changer de VSPackages de contrôle de code source. La sélection vsPackage est automatique. Le basculement de packages nécessite des privilèges Utilisateur Windows (pas Administration istrator ou Power User).