【问题标题】:How to reference a self made assembly that is installed in the GAC in visual studio?如何在 Visual Studio 中引用安装在 GAC 中的自制程序集?
【发布时间】:2026-01-11 12:25:01
【问题描述】:

我创建了一个自制程序集,我认为我使用 .Net 2.0 配置工具 (mscorcfg.msu) 在 GAC 中正确安装了它但是,当我想在 Visual Studio 中引用它时,我在哪里可以找到它?

(我知道,无论如何我都不应该使用 GAC,但请放纵我 ;-))

编辑:我问的问题不够清楚:将程序集安装到 GAC 后,它没有显示在“项目-添加参考”菜单的 .NET 选项卡上。

【问题讨论】:

    标签: .net visual-studio reference gac


    【解决方案1】:

    添加引用对话框实际上是查看注册表,特别是:

    • [HKEY_LOCAL_MACHINE]\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders
    • [HKEY_CURRENT_USER]\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders

    要添加您的程序集,您必须编辑这些注册表项。或者只是使用“浏览...”按钮(而不是)可能更诱人。

    【讨论】:

    • 阅读您的答案让我想起了当我仍然 GAC 程序集时我必须完成的这一步......我继续删除了我的答案。
    • ... 或特定于版本的注册表项,例如SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx
    • 我发现了这个:-HKLM 键在我的案例中指向 C:\program files\reference assembly\microsoft\framework\v3.5 -我将 .dll 复制到该文件夹​​,现在显示在 Visual Studio 中的 Project-Add Reference 菜单的 .Net 选项卡上 - 但是,在构建我的主应用程序时,我仍然遇到了一个未找到程序集的错误。 - 通过将 .dll 安装到 gac 解决了这个问题,将安装实用程序指向由寄存器值指定的 C:\ 驱动器上的位置。谢谢!
    【解决方案2】:

    当您需要引用已部署到 GAC 的程序集时,您需要 通过 Visual Studio 中“添加引用”对话框的“浏览”选项卡浏览到原始项目的 \bin\Debug 目录。

    之所以有效,是因为您已将程序集安装到 GAC 中,因此它将有一个强名称,因此清单中有一个 .publickey 值。

    当您引用其清单包含 .publickey 值的程序集时,Visual Studio 假定强命名程序集很可能会部署到 GAC,因此不会费心将二进制文件复制到您的应用程序文件夹。

    相反,它将使用 GAC 中的版本。

    【讨论】:

    • 谢谢,一个有用的额外评论。实际上是部署应用程序时要避免的事情。
    【解决方案3】:

    我创建了一个完全免费的工具,可以帮助您实现目标。 Muse VSReferences 将允许您从 Add GAC Reference 菜单项向项目添加全局程序集缓存引用。

    希望这个hekps,

    Muse VSExtensions

    【讨论】:

      最近更新 更多