2010-06-03 4 views
0

J'ai fait beaucoup de lecture et d'expérimentation aujourd'hui concernant la sigining des assemblys, et leur installation dans le GAC via différentes méthodes (mscorcfg.msc/drag and drop). Ce que je pensais, c'était qu'une fois qu'un fichier était dans le GAC, vous n'aviez pas besoin de faire référence à des projets dans Visual Studio. Je sais que vous pouvez faire des références via l'habituel Ajouter une référence, Parcourir etc, mais je pensais que c'était automatique. Les tests prouvent que ce n'est pas le cas.Clarification requise concernant l'utilisation des assemblys .NET dans GAC - Configurer pour une utilisation globale?

Je suis tombé sur un post de forum cherchant à atteindre le même résultat que suggéré d'ajouter au fichier machine.config sous system.web comme ci-dessous.

Cela n'a pas fonctionné, il a en fait cassé le studio visuel jusqu'à ce que je l'ai enlevé.

<assemblies> 
       <add assembly="Blah.Framework.Logging, Version=1.0.3806.25580, Culture=neutral, PublicKeyToken=0beed4b631ebc3cd" /> 
      </assemblies> 

Ce que je veux savoir, est que je me trompe dans mon utilisation supposée des assemblées dans le GAC, et est-il un moyen de les rendre disponibles au niveau mondial?

Répondre

2

Globalement disponible ne signifie pas qu'une référence est automatiquement ajoutée à tous vos projets. Cela signifie que vous n'avez pas besoin de copier la DLL dans le chemin d'exploration de l'application (l'option "Copier Local" dans Visual Studio). Vous devez toujours ajouter une référence à votre projet à partir du GAC, mais l'assembly que vous choisissez n'est pas copié dans le dossier bin du projet (le premier arrêt du chemin de sondage.)

L'objectif pratique est de ne pas avoir à redistribuer la (les) DLL (s) que vous référencez avec votre application. Vous ajoutez une référence à elle, et cette référence sera trouvée sur n'importe quelle machine qui a ajouté la DLL à son GAC.

+0

Merci pour la réponse. C'est en quelque sorte la conclusion logique à laquelle je venais, et cela a plus de sens. C'est juste que j'ai trouvé des trucs sur le net qui suggéraient qu'il y avait la capacité que j'ai mentionnée. Très apprécié. – gb2d

Questions connexes