【问题标题】:File or Assembly not found when using Assembly.Load(path)使用 Assembly.Load(path) 时找不到文件或程序集
【发布时间】:2025-12-14 13:40:01
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    你应该使用:

    Assembly.LoadFile(path);
    

    【讨论】:

      最近更新 更多