web-dev-qa-db-fra.com

Comment faire pour référencer une dll dans le GAC de Visual Studio?

Cet assemblage est dans le GAC: Microsoft.SqlServer.Management.RegisteredServers.dll

Comment ajouter une référence à cette assemblée dans Visual Studio?

Je peux voir le fichier dans c:\windows\Assembly \

48
yankman

Comme d'autres l'ont dit, la plupart du temps, vous ne voudrez pas le faire car cela ne copie pas l'assembly dans votre projet et ne se déploie pas avec votre projet. Toutefois, si vous êtes comme moi et que vous essayez d'ajouter une référence que toutes les machines cibles ont dans leur GAC, mais qu'il ne s'agit pas d'un assembly .NET Framework:

  1. Ouvrir la fenêtre Exécuter le dialogue (touche Windows + r)
  2. Tapez C:\Windows\Assembly\gac_msil. C'est une sorte de hack étrange qui vous permet de parcourir votre GAC. Vous ne pouvez y accéder que par le dialogue d'exécution. Espérons que ma diffusion de cette information ne finira pas par amener Microsoft à la corriger et à la bloquer. (Trop paranoïaque?: P)
  3. Recherchez votre Assemblée et copiez son chemin à partir de la barre d'adresse.
  4. Ouvrez la boîte de dialogue Ajouter une référence dans Visual Studio et choisissez l'onglet Parcourir.
  5. Collez le chemin de votre assemblée GAC.

Je ne sais pas s'il existe un moyen plus facile, mais je ne l'ai pas trouvé. J'utilise également fréquemment les étapes 1 à 3 pour placer des fichiers .pdb avec leurs assemblages GAC afin de m'assurer qu'ils ne seront pas perdus lorsque j'aurai besoin ultérieurement d'utiliser le débogueur distant.

54
xr280xr

J'ai créé un outil totalement gratuit qui vous aidera à atteindre votre objectif. Muse VSReferences vous permettra d’ajouter une référence Global Assembly Cache au projet à partir de l’élément de menu Add GAC Reference.

J'espère que cela vous aidera Muse VSExtensions

14
BALKANGraph

L'enregistrement d'assemblies dans le GAC ne place pas ensuite une référence à l'Assemblée dans la boîte de dialogue Ajouter des références. Vous devez toujours référencer l'assembly par chemin d'accès pour votre projet. La principale différence étant que vous n'avez pas besoin d'utiliser l'option de copie locale, votre application le trouvera au moment de l'exécution.

Dans ce cas particulier, il vous suffit de référencer votre assembly par chemin (parcourir) ou, si vous souhaitez réellement l’avoir dans la boîte de dialogue Ajouter une référence, un paramètre de registre vous permet d’ajouter des chemins supplémentaires.

Notez que si vous envoyez votre application à une personne sur laquelle l'Assembly n'est pas installé, vous devez l'envoyer. Dans ce cas, vous devez vraiment utiliser le SharedManagementObjects.msi redistribuable.

13
Tim Jarvis

Dans VS2010, à partir de la fenêtre Ajouter des réerences, vous pouvez cliquer sur "Parcourir", accéder à C:\Windows\Assembly et ajouter des références aux assemblys souhaités. Veuillez noter que les fichiers peuvent être regroupés dans différents dossiers tels que GAC, GAC_32, GAC_64, GAC_MSIL, etc.

7
Manesh

Dans VS, cliquez avec le bouton droit sur votre projet, sélectionnez "Ajouter une référence ..." et vous verrez tous les espaces de noms existant dans votre GAC. Choisissez Microsoft.SqlServer.Management.RegisteredServers et cliquez sur OK, et vous devriez être prêt à partir

MODIFIER:

C'est ce que vous voulez faire la plupart du temps. Cependant, après avoir fouillé un peu, j'ai trouvé ce problème sur MS Connect. MS dit que c'est un problème de déploiement connu et qu'ils n'ont pas de solution de rechange. Le gars dit que s'il copie la dll du dossier GAC et la dépose dans sa corbeille, cela fonctionne. 

5
Matt Briggs

La seule façon qui a fonctionné pour moi est de copier la dll sur votre bureau ou quelque chose du genre, de lui ajouter une référence, puis de la supprimer de votre bureau. Visual Studio s'actualisera lui-même et référencera enfin la dll du GAC sur lui-même.

4
Ahmed IG

En supposant que vous ayez déjà essayé "d'ajouter une référence ..." comme expliqué ci-dessus et que vous n'ayez pas réussi, vous pouvez jeter un coup d'œil ici . Ils disent que vous devez remplir certaines conditions préalables: - .NET 3.5 SP1 - Windows Installer 4.5

EDIT: Selon ce post c'est un problème connu.

Et cela pourrait être la solution que vous cherchez :)

3
Stefano Driussi

Peut-être qu'il est trop tard pour répondre, mais j'ai trouvé un moyen très simple de le faire (sans piratage).

  1. Mettez votre dll dansGAC(pour 3,5 glisser-déposer dans "C:\Windows\Assembly \")
  2. GoTo Projects -> Propriétés
  3. Cliquez sur Chemin de référence (pour 3.5 c'est "C:\Windows\Assembly \")
  4. construire

J'espère que ça aide

1
Vinod Srivastav

J'ai trouvé cette extension pour VS 2013 Référence Vitevic GAC .

0
Devlin

Les fichiers et références pertinents sont disponibles ici:

http://msdn.Microsoft.com/en-us/library/cc283981.aspx

Notez les liens sur la mise en oeuvre/etc.

0
winwaed