我有一个.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.
Jon Skeet.. 13
打开融合日志?
Brad Wilson的博客文章提供了如果失败该怎么做的信息......
打开融合日志?
Brad Wilson的博客文章提供了如果失败该怎么做的信息......
您可以尝试使您的Main()
方法更加健壮以捕获(并显示)异常...... 就像这样.
通常,问题是太多的代码进入最外层的Main()
方法.JIT必须能够充分了解Main()
,否则没有你的代码可以运行的.通过Main()
简化,你有机会.在链接的示例中,如果MainCore()
失败:很好,我们仍然可以捕获异常Main()
.
这是有效的,因为JIT是在逐个方法的基础上完成的...即MainCore()
在调用之前不进行JIT,这时我们已经有了try/catch.