使用Assembly. load(路径)时找不到文件或程序集

本文关键字:找不到 文件 程序集 Assembly load 路径 使用 | 更新日期: 2023-09-27 17:50:38

我正在实现一个ASP。. NET MVC 4应用程序,支持插件,因为今天我有一个奇怪的行为,我不知道为什么:
我通过Assembly.Load(path)加载插件,几天前工作得很好,但锁定了我的文件,因为影子复制不工作,因为插件文件夹在/bin之外。
正因为如此,我使用Assembly.Load(File.ReadAllBytes(path))也工作得很好,但我认为不是真正干净的代码,所以今天我移动了我的插件文件夹内的/bin和切换回Assembly.Load(path),但现在我得到以下例外(翻译为我得到它在我的语言环境)时执行我的代码:

无法加载文件或程序集"PATH_TO_MY_DLL"或其依赖项之一。给定的程序集名称或代码库无效。(Exception from HRESULT: 0x80131047)

如果我切换回Assembly.Load(File.ReadAllBytes(path))它的工作原理,但为什么它不工作时直接加载文件了吗?

使用Assembly. load(路径)时找不到文件或程序集

我觉得你把它改回来是搞错了。

Assembly.Load(string name):加载名为"name"的程序集。

你应该使用:

Assembly.LoadFile(path);