【发布时间】:2018-02-21 13:33:41
【问题描述】:
我有一个项目正在进行,它使用来自 ERP 系统的 DLL。 DLL 用于从 ERP 中获取信息,例如发票等。 我得到的错误是:
内部异常 1:FileNotFoundException:无法加载文件或 程序集 'SnelStartGatewayInterface,版本 = 12.48.37.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。这 系统找不到指定的文件。
但在同一个窗口中,我使用“watch 1”来查看当前使用的程序集,方法是:
AppDomain.CurrentDomain.GetAssemblies()
它返回几个程序集。 这是加载的,与错误中看到的完全相同:
+ [36] {SnelStartGatewayInterface,版本=12.48.37.0,文化=中性,PublicKeyToken=null} System.Reflection.Assembly {System.Reflection.RuntimeAssembly}
为什么它会返回错误?
附言。我在 Windows 窗体测试应用程序中尝试了完全相同的方法和 dll,并且运行良好。
【问题讨论】:
-
看看“...或其依赖项之一。系统找不到指定的文件。”可能是依赖加载失败。
-
我对编程有点陌生,还没有使用过 Dll。你能给我帮助并告诉我在哪里可以找到依赖项或帮助我查看加载的依赖项。
-
@Naaman 看看我的回答。有示例代码可以获取所有引用的程序集。
-
这感觉就像XY Problem。您真正想要完成什么?通常,对于 托管 程序集,您在编译它们之前设置一个引用,您不会使用反射加载它们。这是某种部署问题吗? ERP 系统 DLL 甚至是用 .NET 编写的吗?
标签: c# asp.net .net-assembly filenotfoundexception appdomain