Comment rendre mes Assemblies visibles depuis Visual Studio

On a vu dans le post précédent comment utiliser le GAC pour y ajouter des Assemblies et je pensais sincèrement qu'en mettant mon assembly dans le Global Assembly Cache (GAC), je le verrais facilement dans Visual Studio en faisant "Add Reference ..." et en choisissant l'onglet ".NET" mais il n'en est rien !

Mettre un assembly dans le GAC ne permet pas de le "voir" depuis Visual Studio et pourtant cela me serait bien utile. Je travaille en ce moment avec log4net et dans les exemples que je trouve sur Internet, la référence est toujours "cassée".

Dans mes recherches pour tenter de trouver comment faire, je tombe sur des pages plus ou moins farfelues dont l'une dans le MSDN que je trouve légèrement compliquée. Il faut chercher à la rubrique "To display an assembly in the Add Reference dialog box".

Voici ma technique pour utiliser facilement mes assemblies, ceux que j'ai envie d'utiliser souvent avec Visual Studio. Une fois l'assembly dans le GAC, vous poursuivez par l'ajout d'une clef de registre.

Ajout d'une clef de registre pour Visual Studio

Bref, je me créé un petit fichier : MyAssemblies.reg avec le contenu suivant :

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @="E:\\Assemblies"

Car je souhaite mettre mes Assemblies sur mon disque E: dans le répertoire "Assemblies". Ensuite, je double clique sur le fichier .reg pour ajouter la clef de registre dans la base de registre :

Inscrire la clef de registre "AssemblyFoldersEx\MyAssemblies" dans la base de registre
Clef de registre créée correctement
Je retourne dans mon Visual Studio ma référence est toujours cassée :

Référence à la DLL log4net cassée
Mais je sais que si je clique dessus, la petit icône jaune "Attention" va disparaître comme par enchantement :
DLL log4net trouvée automatiquement dans E:\Assemblies
Voilà, la référence à "\\Assemblies\log4net.dll" est maintenant correctement renseignée dans mon projet.

Remarque :
La DLL log4net n'est toujours pas visible depuis l'un des onglets "Add Reference ..." mais bon ... nous avons au moins appris quelque chose. Il s'agit certainement d'un problème de rafraichissement.

Conclusion

Pour qu'un assembly soit plus facile à utiliser depuis Visual Studio, il faut les deux choses :

  • Que l'assembly soit dans le GAC
  • Que la clef de registre pour Visual Studio existe avec le répertoire des assemblies




Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.