无法加载文件或程序集,但它们已加载

时间:2018-02-21 13:33:41

标签: c# asp.net .net-assembly filenotfoundexception appdomain

我有一个项目正在使用来自ERP系统的DLL。 DLL用于从ERP获取信息,如发票等。 我得到的错误是:

  

内部异常1:FileNotFoundException:无法加载文件或   assembly'SnelStartGatewayInterface,Version = 12.48.37.0,   Culture = neutral,PublicKeyToken = null'或其依赖项之一。该   系统找不到指定的文件。

但是在同一个窗口中,我使用'watch 1'来查看当前使用程序集的方法:

AppDomain.CurrentDomain.GetAssemblies()

它会返回几个程序集。 这是加载的并且与错误中看到的完全相同:

  

+ [36] {SnelStartGatewayInterface,Version = 12.48.37.0,Culture = neutral,PublicKeyToken = null} System.Reflection.Assembly   {System.Reflection.RuntimeAssembly}

为什么会给我这个错误?

聚苯乙烯。我在Windows窗体测试应用程序中尝试了完全相同的方法和dll,它运行正常。

1 个答案:

答案 0 :(得分:0)

与评论中提到的Pawl Lukasik一样,你应该看一下依赖关系。

为此,请使用:

private List<string> ListReferencedAssemblies()
{
    return Assembly.GetExecutingAssembly().GetReferencedAssemblies().Select(x => x.FullName).ToList();
} 

查看所有引用的程序集。

或者使用LINQ:

composer require phpoffice/phpspreadsheet --ignore-platform-reqs