我继续在我的测试机器上获得.NET Runtime 2.0错误(在事件日志中报告),我倾向于在为具有更多调试/诊断信息(或修复)的人交换程序集时获取这些错误。示例消息:
Faulting application MyApp.exe, version 1.0.0.66, stamp 4a3851fa, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51f0a, debug? 0, fault address 0x0000bef7.
我的猜测是,即使我小心不要改变界面,以这种方式交换程序集也许是我不应该做的事情(我应该这样做吗?)
同样,这个应用程序的安装/构建过程非常重要,在调试问题时重建和重新安装所有内容都非常痛苦(实际上它只是不可行)。有没有办法从这些错误中获取更多有用的信息?
答案 0 :(得分:1)
这是由于应用程序遇到未处理的异常。
虽然在短期内可能会有更多工作,但您可以修改应用程序以包含跟踪信息并使用System.Diagnostics namespace.
中提供的工具例如,System.Diagnostics.Trace允许您通过配置(不构建更改)指定可用于运行时跟踪的不同侦听器类。您可以使用它来实现至少可以帮助您缩小可能导致问题的范围的功能,并且只在测试计算机上启用跟踪输出。
此外,请确保您有一个干净的顶级异常处理程序。这可能有助于您在应用程序出现故障时至少发现一些堆栈跟踪信息。
答案 1 :(得分:0)
旧帖但我刚遇到此问题,并且能够通过远程调试来跟踪违规代码,如下所述: http://www.codeproject.com/Articles/146838/Remote-debugging-with-Visual-Studio-2010#_rating
类似的问题: .NET Winforms app dies on startup
在我的情况下,我有一个hanlder for treeview AfterSelect正在改变树的选择并导致另一个AfterSelect被调用,等等 - 结果错误:stackoverflow。这似乎不会发生在其他机器上,因此可能与框架有关。
答案 2 :(得分:0)
我在控制台应用程序中遇到了同样的问题;我通过从命令行启动它来解决它,在那里我可以看到错误的原因(在我的例子中,DLL的访问权限):
Unhandled Exception: System.IO.FileLoadException: Could not load file
or assembly 'FHVI_Common, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'
or one of its dependencies. Access is denied. File name: 'FHVI_Common, Version=1.1.0.0,
Culture=neutral, PublicKeyToken=null' ---> System.UnauthorizedAccessException:
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at xyzCL_Process.Main()