【问题标题】:Can .NET assemblies be placed in the application folder instead of the GAC?.NET 程序集可以放在应用程序文件夹中而不是 GAC 中吗?
【发布时间】:2011-02-21 05:14:02
【问题描述】:

可以在 App 文件夹中而不是 GAC 中使用 .NET DLL 吗?如果将它们放在 App 文件夹中,应用程序是否仍然可以运行?

【问题讨论】:

  • 这是您的应用程序,还是您尝试运行的应用程序?如果是您自己的应用程序,我强烈建议您将 DLL 保存在本地应用程序文件夹中,而不是将它们放在 GAC 中。这增加了另一个层次的复杂性,因为我认为在绝大多数情况下几乎没有什么好处。

标签: .net assemblies gac


【解决方案1】:

是的——一般来说,如果 DLL 与应用程序 (EXE) 位于同一目录中,应用程序应该仍然可以工作。

【讨论】:

    【解决方案2】:

    我很少在 GAC 中添加内容。我大部分时间都将所有 DLL 放在应用程序文件夹中。

    请注意,.Net 在应用程序文件夹之前会尝试在 GAC 中查找 DLL。这意味着如果 GAC 中存在更新版本的 DLL,您的应用将不会使用应用文件夹中的版本。

    【讨论】:

      【解决方案3】:

      Mark 是对的,但请记住存在重要的区别,其中之一是 GAC 的 DLL 是完全受信任的。

      【讨论】:

      • 应用程序文件夹中的 DLL 也完全受信任,因为用户将它们放在那里 ;) 说真的:如果应用程序已签名,则所有 DLL 也必须进行签名。还是我错过了什么?
      • @jgauffin:是的,比这复杂一点。应用文件夹中的 DLL 拥有该目录中的权限,这并不总是与完全信任相同。
      猜你喜欢
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2012-12-06
      • 2010-11-02
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多