【问题标题】:ASP.NET - Add Reference of GAC is not possible?ASP.NET - 添加 GAC 的引用是不可能的?
【发布时间】:2009-09-21 18:38:16
【问题描述】:

我是 ASP.NET 新手,有一些基本的疑问。

1)公共程序集部署在GAC中。即使我选择“添加引用”,我也可以

不指向 c:\windows\assembly(我希望这是不可能的)。我仍然需要参考

源项目的..\Bin文件夹中的程序集(自定义程序集)。背后有什么考虑吗?

2) 为什么 GAC 中不允许使用 exe?

【问题讨论】:

    标签: .net asp.net assemblies gac


    【解决方案1】:

    如果您需要手动访问 GAC 中的程序集,我知道的最简单的方法是 Start > Run > "C:\windows\assembly\gac_msil"。 GAC 中的每个程序集都有一个文件夹,因此您可以在那里浏览并找到所需 DLL 的确切路径,该路径通常如下所示:

    C:\windows\assembly\GAC_MSIL\System.Net\3.5.0.0__b03f5f7f11d50a3a\System.Net.dll
    

    这只是name\version__publickey\filename.dll

    可能还有一种更“正确”的方式,所以如果有人知道那是什么,请纠正我!

    关于第二个问题,我只能假设。 GAC 用于类库而不是可执行文件确实是有道理的,但这主要是哲学上的。我不知道任何一种技术论点。

    编辑:答案下方可爱的第一条评论原来是一个误解,并已解决:)

    【讨论】:

    • 雷克斯,这是一个糟糕的建议,而且没有必要。您可以使用“添加引用”添加 GAC 程序集。
    • @henk 怎么样?如果您在物理位置引用程序集并且它在 GAC 中也可用,那么它当然会从那里加载。但是如果程序集只在 GAC 中,那还怎么引用呢?
    • 添加引用,.NET 选项卡。在项目和站点模板中工作。
    • @Henk 嗯。对此我不确定。 .NET 选项卡并未列出 GAC 中的所有程序集 - 它是预定义物理位置列表的聚合,例如 Framework 文件夹、一些不同的 Program Files 位置等。这些程序集中的大多数也是 在 GAC 中注册,但不一定。
    • Rex,好的,我必须在这里检查我的假设。但不将自己的东西添加到 GAC 仍然有很大帮助。
    【解决方案2】:

    是的,GAC 用于库,因为它用于建立对集合库的全局访问。与不同应用程序共享的一种。为什么在 GAC 中需要一个 exe(应用程序)?了解这一点可能有助于获得更好的答案。

    至于问题 1,我不确定您访问的是什么。人们混淆的一个概念是 GAC 不是物理位置。它只是一个注册表。如果您在 gac 中注册,它不会将该 dll 移动到框架目录中。

    【讨论】:

    • 其实DLL的复制到assembly文件夹中。
    • 好的,是的,我在开车时发短信。(不要开枪,比喻)但我的主要观点是试图发现海报希望在 GAC 中放置一个 exe,我不认为它是他认为是什么。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多