2010-01-01 19 views
26

Esto suena relacionado con this question, pero no son lo mismo. Esa pregunta tenía no montajes apareciendo. El mío tiene todo excepto el específico que instalé.El ensamblado instalado en el GAC no aparece en Visual Studio

Espero que alguien tenga una solución para esto ... ¿estoy haciendo algo mal? ¿O encontré algún error en VS?

Estoy usando Visual Studio 2010 Professional Beta 2 en Windows 7 Ultimate. Acabo de descargar Rhino Mocks y decidí instalarlo en el GAC usando la utilidad de línea de comandos GACUTIL. Luego reinicié.

Aquí se puede ver el montaje en mi GAC (clic para ampliar):

alt text

Y aquí está la lista de conjuntos disponibles para mí en Visual Studio:

alt text

Aquí está el símbolo del sistema donde lo instalé, y luego lo 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 
+0

cierto es poco probable que estar relacionado con el tema se vincula a este problema. La instalación de VS de ese tipo parece completamente desordenada. – Eilon

Respuesta

38

Visual Studio nunca enumera todos los elementos en el GAC. Solo enumera los elementos que se anotan en una clave de registro particular.

Consulte este artículo de la base de conocimientos para obtener más información: How to display an assembly in the "Add Reference" dialog box

Siempre se puede añadir una referencia a la asamblea de la navegación a que en el disco.

+0

tengo un sample.dll colocado en pathCode e instálelo en GAC pathGac, cuando añada la clave de registro, ¿qué ruta escogeré? y si elijo pathCode, cualquier proyecto al que se haga referencia al ítem aparecía en el cuadro de diálogo agregar referencia, ¿funcionaría desde gac normalmente? Gracias – Mhmd

5

El cuadro de diálogo Agregar referencia de Visual Studio es independiente del GAC: las carpetas que busca para los ensamblados en realidad están controladas por la clave de registro AssemblyFolders. No todo lo que aparece en el GAC aparece en Agregar referencia (y, a la inversa, no todo en Agregar referencia está en el GAC).

Para agregar referencias a las DLL de Rhino Mocks, solo vaya a la pestaña Examinar, navegue hasta la ubicación donde instaló/descomprimió/compiló Rhino Mocks, y seleccione la (s) DLL (s) desde allí.

16

He creado una herramienta que es completamente gratuita, que te ayudará a lograr tu objetivo. Muse VSReferences le permitirá agregar una referencia de caché de ensamblaje global al proyecto desde el elemento de menú Agregar referencia GAC.

+1

+1 herramienta impresionante, ahora no tengo que preocuparme por el registro que puedo agregar directamente de GAC – mhenrixon

+0

+1 Buena herramienta, lo intentaré. – Mhmd

+0

¿Tiene esta herramienta para VS2012? – bunggo

0

puede instalar el Visor de informes DLL para ambos Web Forms y Windows Forms desde NuGet:

nuget> Install-Package Microsoft.ReportViewer 
0

respuesta aceptada no resolvió esto, las instrucciones han cambiado ligeramente en función de How to: Add or Remove References By Using the Add Reference Dialog Box

Para una Sistema operativo de 32 bits, agregue una de las siguientes claves de registro.

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

Para un sistema operativo de 64 bits, agregue una de las siguientes claves del registro en una sección del Registro de 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 es la versión más baja de .NET Framework que se aplica. Si VersionMinimum es v3.0, las carpetas especificadas en AssemblyFoldersEx se aplican a proyectos que se dirigen a .NET Framework 3.0 y posterior.

AssemblyLocation es el directorio de las asambleas que desea que aparezcan en el Agregar referencia cuadro de diálogo, por ejemplo, C: \ Myassemblies.

Al crear la clave de registro en el nodo HKEY_LOCAL_MACHINE, todos los usuarios pueden ver los ensamblados en la ubicación especificada en el cuadro de diálogo Agregar referencia. La creación de la clave de registro en el nodo HKEY_CURRENT_USER afecta solo a la configuración del usuario actual.

Abra Agregue el cuadro de diálogo Referencia nuevamente. Los ensamblajes deben aparecer en la pestaña .NET. Si no lo hacen, asegúrese de que los ensamblajes se encuentran en el directorio AssemblyLocation especificado, reinicie Visual Studio y vuelva a intentarlo.

Probado y trabajando con Visual Studio 2017 Enterprise en Windows 10

Cuestiones relacionadas