【发布时间】:2016-01-26 21:58:18
【问题描述】:
我有一个使用 VS2012 创建的 .NET 4.0 应用程序,它在我的开发系统上运行良好。它有几个来自第 3 方和我编写的非托管 DLL。所有这些 DLL 都与 .NET app.exe 位于同一文件夹中。但是,远程客户在启动时遇到异常 0xE0434352。应用程序退出时没有消息,但在事件查看器中看到异常。查看另一个 post 我发现这是通用的 .NET 异常。事件查看器中另一个更有意义的例外是
Application: ModBusCdi75Api.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
Stack:
at ModBusCdi75Api.MainForm..ctor()
at ModBusCdi75Api.Program.Main()
所以似乎没有找到一个程序集,但异常并没有说明是哪一个。从另一篇文章中,我看到Fusion Log 是一种获取有关未找到哪个程序集的更多信息的方法。问题是这只发生在我的远程客户的站点上。我需要让我的客户运行融合日志吗?如果客户端没有 Visual Studio,这可能吗?
【问题讨论】:
-
这看起来不像是程序集加载错误,更像是一个简单的文件未找到。
-
那么我需要弄清楚如何获取未找到的文件名。但是查看构造函数(MainForm..ctor)我没有看到任何文件打开操作。还有其他方法被调用,但如果它发生在应该出现在堆栈跟踪中的被调用函数中。当我阅读堆栈跟踪时,它说 FileIO 错误发生在构造函数本身中。此外,如果不是 DLL 的程序集加载问题,而是一个简单的 File Not Found 错误,为什么客户没有看到显示的异常窗口?
-
也许找不到从您的几个非托管 DLL 传播回来的文件?
标签: .net dll .net-assembly unmanaged filenotfoundexception