gpt4 book ai didi

c# - 使用 Assembly.LoadFile 时无法加载程序集异常

转载 作者:行者123 更新时间:2023-11-30 15:46:25 24 4
gpt4 key购买 nike

这是我的场景:

我有三个项目:两个 DLL 和一个控制台应用程序,我们将它们命名为 foo.dll、bar.dll 和 console.exe。 Console.exe 使用 Assembly.LoadFile(@"c:\foo.dll") 加载 foo.dll。 Foo.dll 的项目引用了 bar.dll 并使用了一个类。 Console.exe 加载 foo.dll 正常,当 foo.dll 尝试使用 bar.dll 的类时出现问题。我收到“无法加载程序集:“bar.dll”等等异常。

几点:

  • 所有项目都是强命名的
  • 宁愿不使用 GAC
  • Bar.dll 在 c:\bar.dll 中

所以一切都在同一个本地目录中,引用了正确的 dll(通过项目属性,我使用 Reflector 来确保程序集版本正确)。如果我将 bar.dll 安装到 GAC,一切都会按预期工作。

我认为它与 Assembly.LoadFile 调用有关,并跳转到第二个 DLL,但我不确定。

感谢您的宝贵时间和意见。

最佳答案

Assembly.LoadFile() 只应在非常特殊的情况下使用。该程序集没有加载上下文,这就是找不到 bar.dll 的原因。唯一真正的用例是转储程序集元数据的工具和程序。

使用 Load 或 LoadFrom()。解决 fuslogvw.exe 的问题

关于c# - 使用 Assembly.LoadFile 时无法加载程序集异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com