2009-01-14 3 views

Répondre

5

Dans VS, clic droit de votre projet, sélectionnez « Ajouter une référence ... », et vous verrez tous les espaces de noms qui existent dans votre GAC . Choisissez Microsoft.SqlServer.Management.RegisteredServers et cliquez sur OK, et vous devriez être bon d'aller

EDIT:

C'est la façon dont vous voulez faire la plupart du temps. Cependant, après un peu de recherche, j'ai trouvé this issue sur MS Connect. MS dit que c'est un problème de déploiement connu, et qu'ils n'ont pas de solution. Le gars dit s'il copie la DLL du dossier GAC et le dépose dans son bac, cela fonctionne.

+0

Il n'est pas là pour une raison quelconque! –

+0

Sur la page que vous avez liée ils (maintenant 17-Nov-2010) mentionnent que le problème a été corrigé. –

2

En supposant que vous ayez déjà essayé de "Ajouter une référence ..." comme expliqué ci-dessus et que vous n'y ayez pas réussi, vous pouvez regarder here. Ils disent que vous devez rencontrer des conditions préalables: - .NET 3.5 SP1 - Windows Installer 4.5

EDIT: D'après ce post il est un problème connu.

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

11

Enregistrement assmblies dans le GAC ne puis placez une référence à l'ensemble 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 copy local, votre application la trouvera lors de l'exécution.

Dans ce cas particulier, il vous suffit de référencer votre assembly par chemin (browse) ou si vous voulez vraiment l'avoir dans la boîte de dialogue add reference, il existe un paramètre de registre dans lequel vous pouvez ajouter des chemins supplémentaires. Remarque: si vous expédiez votre application à quelqu'un qui ne dispose pas de cet assemblage, vous devrez l'expédier, et dans ce cas, vous devez vraiment utiliser le redistribuable SharedManagementObjects.msi.

14

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

Hope this helps Muse VSExtensions

+0

Est-il possible de le faire fonctionner avec Visual Studio Express Edition? –

+2

Ne fonctionne que pour VS 2010 si ... – Peter

+0

Excellent outil !! :) – Nayan

54

Comme les autres ont dit, la plupart du temps vous ne voulez pas le faire, car il ne copie pas l'assemblée à votre projet et il ne se déploiera pas avec votre projet. Toutefois, si vous êtes comme moi, et d'essayer d'ajouter une référence que toutes les machines cibles ont dans leur GAC, mais ce n'est pas un ensemble de .NET Framework:

  1. Ouvrez les fenêtres de dialogue Exécuter (touche Windows + r)
  2. Tapez C: \ Windows \ assembly \ gac_msil. C'est une sorte de piratage bizarre qui vous permet de parcourir votre GAC. Vous ne pouvez y accéder qu'à travers la boîte de dialogue d'exécution. J'espère que ma diffusion de cette information ne finira pas par causer à Microsoft de le patcher et de le bloquer. (Trop paranoïaque?: P)
  3. Trouvez votre assemblage 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 d'accès à votre assembly GAC.

Je ne sais pas s'il y a un moyen plus simple, mais je ne l'ai pas trouvé. J'utilise également souvent l'étape 1-3 pour placer les fichiers .pdb avec leurs assemblys GAC pour s'assurer qu'ils ne sont pas perdus lorsque j'ai besoin d'utiliser Debugger à distance.

+0

Je regardais récemment une vidéo de Channel 9 ou quelque chose de similaire et j'ai rapidement vu que la fenêtre de référence d'ajout de l'instructeur incluait une option GAC (ne me souviens pas exactement). Je ne sais pas si c'était un ajout maison ou s'il y en a un disponible. Est-ce que quelqu'un a vu ça? – xr280xr

+1

Jetez un oeil à @Muse VS * réponse. Cela fonctionne bien. – pauloya

+1

"GAC_MSIL n'est pas reconnu comme commande interne ou externe" dans Win7 – Rakesh

6

Dans VS2010, à partir de la fenêtre Ajouter des rerences, vous pouvez cliquer sur 'Parcourir' et naviguer jusqu'à C: \ Windows \ Assembly et ajouter des références aux assemblys souhaités. S'il vous plaît noter que les fichiers peuvent être regroupés sous différents dossiers comme GAC, GAC_32, GAC_64, GAC_MSIL, etc.

4

La seule façon qui a fonctionné pour moi, est en copiant la DLL dans votre bureau ou quelque chose, ajouter une référence à elle, puis supprimer la DLL de votre bureau. Visual Studio s'actualisera et fera référence à la DLL du GAC sur lui-même.

1

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

  1. Mettez vos dll dans GAC (pour 3,5 drag and drop "à l'intérieur C: \ Windows \ assembly \")
  2. GoTo Projets -> Propriétés
  3. Cliquez sur Référence Chemin (pour 3.5 il est "C: \ Windows \ assembly \")
  4. and Build

J'espère que ça aide

Questions connexes