【问题标题】:Why C# library cannot be found in system32 folder?为什么在 system32 文件夹中找不到 C# 库?
【发布时间】:2012-03-01 11:28:11
【问题描述】:

Project 有对 lib 的引用。如果此库位于可执行文件附近,则一切正常。但我需要把这个库放到 System32 文件夹中。但在这种情况下,项目失败,引发 filenotfoundexception。

我认为我可以随意将我的库放入 system32 文件夹,而不会对我的应用造成任何伤害。

这一切有什么问题?

【问题讨论】:

  • 为什么需要放到System32文件夹下?如果您在全球范围内需要它,为什么不将它放在 GAC 中?
  • 我无法在应用程序文件夹或其子文件夹中使用我的库,我认为使用它的最简单方法是将其放置到 system32 文件夹中。\
  • 为什么不能使用应用文件夹中的dll?
  • DLL 地狱是你必须学会​​害怕的东西。

标签: c# dll load file-not-found


【解决方案1】:

.NET 运行时不会探测 system32 中的自定义 DLL。本文解释了程序集加载和探测的工作原理:

http://msdn.microsoft.com/en-us/library/yx7xezcf(v=vs.90).aspx

【讨论】:

  • 谢谢!我想我现在明白它是如何工作的。就我而言,唯一的方法是 GAC
【解决方案2】:

如果它是托管程序集,则需要将其放入 GAC(这需要强名称)。

【讨论】:

  • 是的,这确实是个好建议。我已经在 GAC 的帮助下解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
  • 2020-03-29
  • 2017-07-04
  • 2015-08-12
  • 2021-05-21
  • 1970-01-01
相关资源
最近更新 更多