为什么手动复制的程序集未在“添加引用”对话框中列出?

时间:2011-02-11 06:14:58

标签: .net visual-studio visual-studio-2010 assemblies gac

  

可能重复:
  Assembly installed into the GAC not showing up in Visual Studio

我已使用gacutil命令将log4net程序集复制到GAC。从资源管理器我能够看到它被复制,但当我尝试将其引用添加到项目时,我无法在添加引用对话框中看到它。

还有另一种方法可以从硬编码路径引用它,但如果他的机器上不存在该路径,则可能会给另一位开发人员带来问题。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

添加到GAC的程序集通常不会在“添加引用”对话框中列出。你必须添加
注册表的一个键,指向程序集的位置。例如:

[HKCU\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\MyAssemblies]@="C:\\MyAssemblies"

其中MyAssemblies是程序集所在文件夹的名称。

有关详细信息,请参阅this knowledge base article


另请注意,您通常不会<劝阻在GAC中安装程序集。若要直接从Visual Studio中的项目引用程序集,应将程序集添加到项目文件夹中,并添加对DLL的本地副本的引用。

答案 1 :(得分:1)

在项目中添加一个名为references的文件夹,然后将dll添加到此文件夹,并在此文件夹中添加对dll的引用。

答案 2 :(得分:0)

来自MSDN

  

仅限“添加引用”对话框   列出公共中的程序集   Assemblies文件夹(程序   Files \ Microsoft Visual Studio   .NET \ Common7 \ IDE \ Public Assemblies)。   您可以将自己的程序集复制到   Public Assemblies文件夹,或   直接浏览它们。请注意你   无法添加来自Global的引用   程序集缓存(GAC),实际上   严格地说是运行时的一部分   环境。