NuGet comment faire autrement mais proprement avec gestion de configuration ?

NuGet vous trouvez toujours ça cool ? J'aurais bien quelques griefs à émettre. Alors je vais vous montrer ce que je fais pour m'en passer proprement. En même temps, on va travailler un peu avec Visual Studio 2015 Community et Team Services Cloud et voir ce que l'on peut faire avec tout cela.

NuGet quelques Griefs

Franchement Nuget, je ne trouve pas ça si cool que ça. Je trouve qu'ils sont un peu dépassés par leur succès. Quand je pense que les premières pages de pub sur NuGet disaient : "pour sortir enfin de l'enfer des DLLs" ou du GAC "Global Assembly Cache" et bien moi je trouve qu'on y est encore en plein et que NuGet vous oblige à migrer alors que parfois vous ne le souhaitez pas.

J'ai travaillé avec Prism sur les premières versions, j'ai archivé mon projet "using prism", je le ressort quelques années après, la version de Prism n'est plus gérée par le package correspondant au sein de NuGet. Je suis donc "obligé de migrer" c'est à dire de faire des modifications d'un code qui fonctionnait pour qu'il fonctionne à nouveau. Franchement je trouve pas ça cool ! Du moins c'est pas mieux qu'avant.

Comment se passer proprement de NuGet, créer un répertoire Assemblies

Rien de miraculeux mais une façon propre de créer quelque chose de pérenne et sans utiliser NuGet. Je créé un répertoire nommé : Assemblies à la racine de ma solution pour y placer les modules (les packages) que je souhaite sortir de la gestion de NuGet. Par exemple Log4Net.

Répertoire Assemblies des DLL en références dans mon projet non gérées par NuGet
La difficulté c'est de trouvé la DLL Log4Net seule sans NuGet autour. Je la trouve et je la place dans répertoire Assemblies et j'y fais référence dans mon projet et le tour est joué.

log4net est référencée dans mon projet

Mise en Gestion de Configuration de ma DLL

Comment retrouvé cette DLL log4net dans la gestion de configuration ? Ce qu'on remarque c'est que dans l'Explorateur de contrôle de code source c'est bien entendu vide :

La DLL n'est pas encore dans le contrôle de code source

Où sont les sources dans le Cloud de Team Services ?

On a vu que Visual Studio Online devenait Team Service mais comment y accéder depuis mon projet ouvert dans VS 2015 Community, moi j'ai trouvé le lien suivant :

Accès à Team Services depuis VS 2015 Community
On peut alors naviguer dans le projet sous Cloud :


Le répertoire Assemblies dans le gestionnaire de code sources est vide aussi :



Pour ajouter la DLL log4net dans le gestionnaire de configuration il faut "Ajouter les fichiers au contrôle de code source" de la façon suivante : Revenir dans Visual Studio dans l'Explorateur de solutions


Il faut encore un clique sur Ok :


Un petit + en vert vient s'ajouter devant le fichier dans l'Explorateur de solution, il faut encore archiver et actualiser pour voir ce fichier dans le gestionnaire de configuration de Team Services "cloud" :

DLL log4net maintenant en gestion de configuration
Voila c'est fait.

Conclusion

 Je vous l'avais dit, rien de miraculeux mais on est tranquille, le package Log4Net n'évolue plus (n'est plus en développement) il n'y a donc aucune raison de le suivre en gestion de configuration. Même s'il venait à être supprimer des NuGets Packages notre projet continuerait de fonctionner et c'était l'objectif.

Have fun !