Nuget Reference Switcher

Dans le cadre de plusieurs projets il est fréquent d'établir des liens de dépendance fonctionnels forts entre eux. Cette dépendance peut être commune aux projets partageant le même périmètre métier et il est alors intéressant de maintenir une ou plusieurs librairies partagées entre ceux-ci. Chaque projet partageant ainsi feront la même librairie de BusinessEntities (où peuvent par exemple se trouver des "Produits", des "Fichiers" ou toute autre classe métier pour laquelle les projets doivent conserver un fonctionnement similaire). Les packages Nuget permettent de répondre à ce besoin en créant une librairie commune mais également en mettant en place un système de versionning capable de faire évoluer de manière asynchrone chacun de nos projets.

Que vous partiez d'un projet "From Scratch" ou  d'un ou plusieurs projets existants, il paraît inévitable d'arriver tôt ou tard au fameux moment du "debug dans la lib" afin d'identifier un problème, de détecter l'origine d'un incident, d'assimiler la provenance d'informations, etc. Vous devrez alors parcourir en mode "debug" votre librairie sous forme de "package Nuget" depuis Visual Studio tout comme on peut parcourir en mode debug notre solution principale (celle faisant référence au package Nuget).

Pour répondre à ce besoin si particulier et si fort à la fois, un outil nous sauve la mise en nous apportant son aide ô combien précieuse : "Nuget Switcher Reference", votre nouvel ami pour la vie ! En effet, il va vous permettre de basculer une référence Nuget vers une référence au projet lui-même pour peu que vous disposiez des sources bien évidemment.

Installation

Son installation est aussi rapide que simple, il suffit d'ouvrir Visual Studio, de cliquer sur "Outils", puis "Extensions et mises à jour". Dans la nouvelle fenêtre, sélectionnez "En ligne" dans la partie de gauche puis saisissez dans le champ de recherche "Nuget Switcher Reference" et enfin "Télécharger".

Vous n'avez rien de plus à faire, l'installation est terminée.

Utilisation

Prenons le projet "Tic" faisant référénce à un projet "Lib" sous forme de package Nuget. Vous souhaitez pouvoir rentrer en mode debug dans "Lib" depuis votre solution du projet "Tic" :

  • Ouvrez votre solution "Tic" dans Visual Studio
  • Cliquez sur "Outils" puis "Switch Nuget and Project References"

Dans le premier onglet nommé "Switch to Project References", vous pouvez voir tous les packages Nuget auxquels votre projet Tic fait référence.

  • Sélectionnez celui désiré (dans notre cas "LIB") en sélectionnant "Add new project to solution"
  • Puis cliquez sur "Select Project to add",
  • Un explorateur de fichier s'ouvre,  sélectionnez le fichier .csproj du projet "Lib".

Une fois le fichier ".csproj" sélectionné, le nom et le chemin de ce dernier apparaissent juste en dessous du bouton "Select Project to add".

  • Cliquez enfin sur le bouton "Switch to Project references" pour confirmer.

Les sources du projet "LIB" sont alors chargées dans la solution "Tic" et les références à cette librairie sont maintenant des références à ces sources !

En lançant votre solution en mode debug vous pourrez maintenant sans problème arriver jusque dans les sources de la librairie en y plaçant des points d'arrêt par exemple.

Maintenant comment faire marche arrière pour faire référence de nouveau au package Nuget ? C'est aussi simple que pour faire référence aux sources !

Ouvrez à nouveau l'outil, puis cette fois-ci, allez dans le deuxième onglet "Switch to NuGet references" et cliquez simplement sur le bouton "Switch to NuGet references" en bas de la fenêtre ; et voilà, terminé !

Attention tout de même ! En "switchant" les références, cela va modifier certains fichiers de la solution qui fait appel à la librairie ("Tic" dans notre exemple), modifications qu'il vous faudra alors annuler, ce qui est la seule limite de cet outil.

Voici les fichiers modifiés : le fichier ".sln", le fichier ".csproj" et enfin un nouveau fichier "Site.nugetreferenceswitcher". Pour éviter tout problème soyez vigilants et annuler ces modifications puis supprimer le fichier ajouté notamment pour éviter de les inclure dans des futurs commits ou archivages !

D'autres méthodes/bricolages permettent de faire la même chose, basculer d'un référencement NuGet à un référencement projet, mais cet outil vous fera gagner un temps précieux et vous sera dans certains cas d'une grande aide, je vous le souhaite en tout cas !

Référence: GitHub

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *