2009-12-19 6 views
5

Tengo un conjunto de interoperabilidad en GAC; Windows Explorer lo muestra claramente en la carpeta C:\WINDOWS\assembly. Sin embargo, cuando intento agregar una referencia desde Visual Studio, no puedo verlo en ningún lugar del diálogo Agregar referencia.Asamblea de GAC Falta en el cuadro de diálogo Agregar referencia

Si esto le sucede a usted también, ¿cuál es la razón de esto? ¿Y cómo soluciono esto?

(El montaje es realidad encuentra en C:\WINDOWS\assembly\GAC_MSIL carpeta, si quieres saberlo.)

Respuesta

0

"C: \ WINDOWS \ assembly" es una carpeta especial que en el Explorador de Windows mostrará una lista de los conjuntos (y el conjunto información) dentro de las diversas subcarpetas.

Para su caso, puede necesitar apuntarlo a la ruta física que es "C: \ Windows \ assembly \ GAC_MSIL ..... dll" dentro de VS.NET.

+0

Lo sé. Pero, ¿cómo "navegas" hacia esa subcarpeta? El explorador de Windows no te dejará. ¿Estás insinuando que tengo que recurrir a la compilación de la línea de comandos? Tiene que haber una mejor manera. –

+0

Francamente, estoy muy desconcertado también. En primer lugar, si aparece en la carpeta de ensamblaje, debería poder ver en la pestaña "Examinar" del cuadro de diálogo "Agregar referencia." Lo siento amigo, espero que alguien más pueda ayudar aquí. –

5

Agregue una de las siguientes claves de registro, ¿dónde está el directorio para buscar y MyAssemblies es la categoría de sus ensamblajes? Nota HKCU es para el usuario actual y HKLM es para todos en la misma computadora.

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<version>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>" 
+0

¿Cómo difiere esto de [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \.NETFramework \ AssemblyFolders] (La diferencia es \ AssemblyFoldersEx \ MyAssemblies ...)? Leyendo http://support.microsoft.com/kb/306149 Supongo que la clave sin sería la correcta ... – RonnBlack

+0

Tal como lo señala @Soundararajan en otra parte de esta página, VS encontrará y creará con éxito ensamblajes GAC si los agrega manualmente a su archivo '.csproj'. Cambiar la clave de registro como se describe aquí solo es necesario si desea poder usar la interfaz gráfica de usuario 'Agregar referencia' de VS. –

2

Como otros de haber señalado, la simple instalación de una asamblea en la GAC ​​no asegura que va a aparecer en el cuadro de diálogo Agregar referencia. He encontrado this página de MSDN que tiene los detalles. Consulte la sección Para ver un ensamblaje en el cuadro de diálogo Agregar referencia.

-1

Use este comando bajo el símbolo de Visual Studio

regsvr32/u shfusion.dll

3

He creado una herramienta que le ayudará a alcanzar su objetivo. Muse VSReferences le permitirá agregar una referencia de caché de ensamblaje global al proyecto desde el elemento de menú Agregar referencia GAC.

+0

Lamentablemente, no es compatible con Visual Studio 2012. – Thought

+1

@Thought: He * extraoficialmente * modificado la extensión para admitir VS2012 y VS2013. Está disponible para descargar [aquí] (http://ge.tt/2COX9iS/v/1?c). –

0

También puede asignar la carpeta GAC ​​a una unidad virtual, y luego puede agregar la referencia GAC ​​a través de la pestaña de exploración.

Manual por MZ-Tools

0

Alternativamente, edité el archivo de proyecto y ha añadido la referencia manualmente.

  1. Instalar el conjunto en GAC. gacutil /i "Foo.dll"
  2. Encuentra el nombre correcto del ensamblaje. gacutil /l le dará la lista para elegir.
  3. En el archivo de proyecto que consume añadir la siguiente línea (del paso anterior)
  4. <Reference Include="Foo, Version=x.x, Culture=neutral, PublicKeyToken=xxx, processorArchitecture=MSIL" />
  5. y funciona. :)
Cuestiones relacionadas