web-dev-qa-db-fra.com

L'assemblage installé dans le GAC n'apparaissant pas dans Visual Studio

Cela semble lié à cette question , mais ce n'est pas la même chose. Cette question avait no assemblies apparaissant. Le mien a tout sauf le spécifique que j'ai installé.

J'espère que quelqu'un a une solution à cela ... est-ce que je fais quelque chose de mal? Ou ai-je trouvé un bug dans VS?

J'utilise Visual Studio 2010 Professional Bêta 2 sur Windows 7 Ultimate. Je viens de télécharger Rhino Mocks et j'ai décidé de l'installer dans le GAC à l'aide de l'utilitaire de ligne de commande GACUTIL. J'ai ensuite redémarré.

Ici vous pouvez voir l'Assemblée dans mon GAC (cliquez pour agrandir):

 alt text

Et voici la liste des assemblys disponibles dans Visual Studio:

 alt text

Voici l'invite de commande où je l'ai installé, puis confirmé.

C:\Users\jason\Downloads>gacutil -i Rhino.Mocks.dll
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.21006.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly successfully added to the cache

C:\Users\jason\Downloads>gacutil /l |grep -i rhino
Rhino.Mocks, Version=3.6.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL
28
Amy

Visual Studio ne répertorie jamais tous les éléments du GAC. Il ne répertorie que les éléments notés dans une clé de registre particulière.

Veuillez consulter cet article de la base de connaissances pour plus d'informations: Comment afficher un assemblage dans la boîte de dialogue "Ajouter une référence"

Vous pouvez toujours ajouter une référence à l'assembly en le parcourant sur disque.

39
Eilon

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

16
BALKANGraph

La boîte de dialogue Ajouter une référence à Visual Studio est indépendante du GAC: les dossiers dans lesquels elle recherche des assemblys sont en réalité contrôlés par la clé de registre AssemblyFolders. Tout ce qui apparaît dans le GAC n'apparaît pas dans Ajouter une référence (et inversement, tout dans Ajouter une référence ne se trouve pas dans le GAC).

Pour ajouter des références aux DLL Rhino Mocks, allez simplement dans l'onglet Parcourir, naviguez jusqu'à l'emplacement où vous avez installé/décompressé/construit Rhino Mocks, puis sélectionnez la ou les DLL à partir de cet emplacement.

5
itowlson

La réponse acceptée n'a pas résolu ce problème, les instructions ont légèrement changé en fonction de Comment: ajouter ou supprimer des références à l'aide de la boîte de dialogue Ajouter une référence

Pour un système d'exploitation 32 bits , ajoutez l'une des clés de registre suivantes.

  • [HKEY_CURRENT_USER\LOGICIEL\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @ = "AssemblyLocation"
  • [HKEY_LOCAL_MACHINE\LOGICIEL\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @ = "AssemblyLocation"

Pour un système d'exploitation 64 bits , ajoutez l'une des clés de registre suivantes dans une hive de registre 32 bits.

  • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies] @ = "AssemblyLocation"
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\ VersionMinimum\AssemblyFoldersEx\MyAssemblies] @ = "AssemblyLocation"

VersionMinimum est la version la plus basse de .NET Framework qui s'applique. Si VersionMinimum correspond à la v3.0, les dossiers spécifiés dans AssemblyFoldersEx s'appliquent aux projets qui ciblent .NET Framework 3.0 et versions ultérieures.

AssemblyLocation est le répertoire des assemblys que vous souhaitez voir apparaître dans la boîte de dialogue Ajouter une référence , par exemple, C:\MyAssemblies.

La création de la clé de registre sous le noeud HKEY_LOCAL_MACHINE permet à tous les utilisateurs de voir les assemblys à l'emplacement spécifié dans la boîte de dialogue Ajouter une référence . La création de la clé de registre sous le nœud HKEY_CURRENT_USER affecte uniquement le paramètre défini pour l'utilisateur actuel.

Ouvrez à nouveau la boîte de dialogue Ajouter une référence . Les assemblys doivent apparaître sur .NET tab. Si ce n'est pas le cas, assurez-vous que les assemblys sont situés dans le répertoire spécifié AssemblyLocation, redémarrez Visual Studio et réessayez.

Testé et travaillant avec Visual Studio 2017 Enterprise sur Windows 10

0
bdimag

Vous pouvez installer les DLL Report Viewer pour WebForms et WinForms à partir de NuGet:

nuget> Install-Package Microsoft.ReportViewer
0
Josh M.