【问题标题】:Why are manually copied assemblies not listed in the Add Reference dialog? [duplicate]为什么手动复制的程序集未在“添加引用”对话框中列出? [复制]
【发布时间】:2011-02-11 06:14:57
【问题描述】:

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

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

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

我该如何解决这个问题?

【问题讨论】:

  • 那个窗口不是基于 GAC 的;事实上,GAC 对此[积极劝阻][1]。您可以使用注册表告诉添加引用对话框在哪里查看,但这实际上是为供应商安装工具而设计的。对于大多数通用目的,只需将“lib”(或类似)文件夹添加到您的源代码存储库,项目中的所有开发人员都会从那里链接它。 [1]:support.microsoft.com/kb/306149

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


【解决方案1】:

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

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

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

更多详情请见this knowledge base article


还请注意,您通常不鼓励在 GAC 中安装程序集。若要直接从 Visual Studio 中的项目引用程序集,您应该将程序集添加到您的项目文件夹中,并改为添加对 DLL 的此本地副本的引用。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      来自MSDN

      仅添加参考对话框 在 Public 中列出程序集 程序集文件夹(程序 文件\Microsoft Visual Studio .NET\Common7\IDE\公共程序集)。 您可以将自己的程序集复制到 公共程序集文件夹,或 直接浏览它们。请注意,您 无法从全局添加引用 程序集缓存 (GAC),因为它是 严格的运行时的一部分 环境。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-05
        • 2011-03-03
        • 2011-04-08
        • 1970-01-01
        相关资源
        最近更新 更多