GAC程序集在“添加引用”对话框中丢失

时间:2009-12-19 13:29:00

标签: visual-studio assemblies reference gac

我有一个位于GAC的Interop程序集; Windows资源管理器清楚地显示它在C:\WINDOWS\assembly文件夹中列出。然而,当我尝试从Visual Studio添加对它的引用时,我无法在“添加引用”对话框中的任何位置看到它。

如果您也遇到过这种情况,原因是什么?我该如何解决这个问题?

(如果你必须知道,那么程序集实际位于C:\WINDOWS\assembly\GAC_MSIL文件夹中。)

7 个答案:

答案 0 :(得分:5)

添加以下注册表项之一,其中是要搜索的目录,MyAssemblies是程序集的类别。注意HKCU适用于当前用户,HKLM适用于同一台计算机上的所有人。

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

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

答案 1 :(得分:3)

我创建了一个可以帮助您实现目标的工具。 Muse VSReferences将允许您从Add GAC Reference菜单项中向项目添加Global Assembly Cache引用。

答案 2 :(得分:2)

正如其他人所指出的那样,只需在GAC中安装程序集并不能确保它会显示在“添加引用”对话框中。我找到了this MSDN页面,其中包含详细信息。请参阅部分以在“添加引用”对话框中显示程序集

答案 3 :(得分:0)

“C:\ WINDOWS \ assembly”是一个特殊文件夹,在Windows资源管理器中将列出各个子文件夹中的程序集(和程序集信息)。

对于您的情况,您可能需要将其指向VS.NET中的“C:\ Windows \ assembly \ GAC_MSIL ..... dll”的物理路径。

答案 4 :(得分:0)

您还可以将GAC文件夹映射到虚拟驱动器,然后您可以通过浏览选项卡添加GAC参考。

MZ-Tools

Manual

答案 5 :(得分:0)

或者,我编辑了Project文件并手动添加了引用。

  1. 在GAC中安装程序集。 gacutil /i "Foo.dll"
  2. 找到程序集的强名称。 gacutil /l会为您提供可供您选择的列表。
  3. 在使用项目文件中添加以下行(来自上一步)
  4. <Reference Include="Foo, Version=x.x, Culture=neutral, PublicKeyToken=xxx, processorArchitecture=MSIL" />
  5. 它有效。 :)

答案 6 :(得分:-1)

在Visual studio命令提示符下使用此命令

regsvr32 / u shfusion.dll