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 |
Référence à la DLL log4net cassée |
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:
Enregistrer un commentaire
Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.