Je veux partager un dll entre deux projets.Est-il nécessaire de mettre l'assembly partagé dans GAC uniquement?
Est-il nécessaire de mettre la DLL dans GAC seulement ou puis-je le placer dans n'importe quel dossier?
Je veux partager un dll entre deux projets.Est-il nécessaire de mettre l'assembly partagé dans GAC uniquement?
Est-il nécessaire de mettre la DLL dans GAC seulement ou puis-je le placer dans n'importe quel dossier?
Le chargeur d'assemblage recherchera l'assembly à plusieurs endroits, dont le répertoire d'exécution. Cela signifie que vous pouvez simplement copier dans plusieurs répertoires.
Voir How the Runtime Locates Assemblies
sur MSDN.
Je recommande fortement de le conserver dans le dossier Bin de chaque projet. N'essayez pas de le partager à moins que ce ne soit vraiment (vraiment) nécessaire.
La deuxième meilleure option consiste à placer un dossier partagé (en utilisant un chemin relatif) et à le configurer dans chaque fichier de configuration de projets (
Probing path
). Notez que vous devrez toujours mettre à jour les 2 projets simultanément. Si l'assemblage contient des types qui sont utilisés pour communiquer entre les deux projets, alors cela a du sens, mais sinon c'est une complication inutile.
La dernière option est de le mettre dans le GAC
Dans votre situation, je vous recommande d'utiliser votre système de contrôle de code source pour faire respecter le partage structuré, et non le GAC.
Le processus Subversion:
Cela vous donne le meilleur des deux mondes: