c# - 使用 Assembly.Load(path) 时找不到文件或程序集

标签 c# asp.net .net asp.net-mvc-4

我正在实现一个支持插件的 ASP.NET MVC 4 应用程序,从今天起我有一个奇怪的行为,我不知道为什么:
我通过 Assembly.Load(path) 加载插件,这在几天前运行良好,但由于插件文件夹在 /bin 之外,影子复制不起作用而锁定了我的文件>.
因此,我使用了 Assembly.Load(File.ReadAllBytes(path)) 也可以正常工作,但我认为这不是真正干净的代码,所以今天我将我的插件文件夹移到了 /bin 并切换回 Assembly.Load(path),但现在在执行我的代码时出现以下异常(在我的语言环境中进行翻译):

Could not load file or assembly "PATH_TO_MY_DLL" or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

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

最佳答案

我认为你改回来的时候犯了一个错误。

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

你应该使用:

Assembly.LoadFile(path);

关于c# - 使用 Assembly.Load(path) 时找不到文件或程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162650/

相关文章:

asp.net - 是否可以根据用户在 MVC 应用程序(html 菜单列表)中的角色隐藏菜单项?

.NET SOAP 客户端使用 :Array

c# - 如何在不添加对调用项目的引用的情况下通过类库正确解析 DLL 引用

c# - 将 System.Diagnostics.ProcessStartInfo StandardOutput 读取为字节而不是字符

c# - 在运行时获取对象类型

asp.net - 是否可以回收 IIS EXPRESS 应用程序池而不丢失用户 session ?

javascript - 为什么 Angularjs 调用 Controller 两次?

.net - 在没有源代码的情况下本地化 .NET 程序集

c# - 从嵌套的 JSON 中检索字符串 - System.Collections.Generic.List`1[System.String]

c# - Linq 多级动态 where 子句