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

时间:2013-01-04 18:19:34

标签: 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),但现在我在执行我的代码时得到以下异常(在我的语言环境中翻译):

  
    

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

  

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

1 个答案:

答案 0 :(得分:4)

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

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

您应该使用:

Assembly.LoadFile(path);