system.io.fileloadexception故障排除

时间:2008-11-17 14:02:43

标签: .net

我有一个.net 3.5 WinForms应用程序在我的机器上正常运行,但在另一台机器上它会立即崩溃并发生system.io.fileloadexception。不幸的是,没有关于哪个文件无法加载的详细信息,所以我不知道问题究竟在哪里。

我相信我知道它可能是哪一个(SQL Server Compact版本),但在我漫无目的地搜索之前,我想知道是否有一种正确的方法可以找出导致fileloadexception的原因,而不是使用来自SysInternals的FileMon。

唯一的错误信息是:

  

EventType clr20r3,P1 myapplication.exe,P2 2.1.0.0,P3 490eca78,P4 myapplication,P5 2.1.0.0,P6 490eca78,P7 2e,P8 21,P9 system.io.fileloadexception,P10 NIL。

4 个答案:

答案 0 :(得分:13)

开启fusion logging

来自Brad Wilson的

This blog entry提供了如果失败该怎么办的信息...

答案 1 :(得分:6)

您可以尝试使Main()方法更加健壮,以捕获(并显示)异常...... like so

通常,问题是代码太多会进入最外层的Main()方法。 JIT必须能够完全理解Main(),否则代码的 none 就可以运行。通过简化Main(),你有机会。在链接示例中,如果MainCore()失败:很好,我们仍然可以在Main()中捕获异常。

这是有效的,因为JIT是在逐个方法的基础上完成的......即MainCore()在被调用之前不会被JIT,这时我们已经有了try / catch。

答案 2 :(得分:2)

挂钩并记录AppDomain.AssemblyResolve

答案 3 :(得分:1)

获取Microsoft调试工具SDK,并使用windbg或cordbg附加并运行您的应用程序。如果没有找到问题,这应该至少给你一个问题的线索。