【发布时间】:2014-06-25 14:42:33
【问题描述】:
我的团队将 WPF 应用程序分发到一千多台机器。 99.9% 的应用程序按预期工作,但是,有时我们会从 C++ 中得到一个异常。通常这是一个非常早期的例外。显然,我们无法访问 Visual Studio 和工具(不过,我可能会分发一些独立的工具)、调试、管理员权限等。在这种情况下,我完全无法依靠猜测。 Windows EventLog 没有多大帮助。 Main() 方法在生成的代码 App.g.i.cs 中,我想是相当标准的。 如何在它周围插入 try/catch?它甚至会提供任何线索吗?显然,主要目标是消除或减少猜测。
public static void Main() {
MyProgram.App app = new MyProgram.App();
app.InitializeComponent();
app.Run();
}
Windows 事件日志中的异常如下:
Application: MyProgram.EXE
框架版本:v4.0.30319 说明:进程因未处理的异常而终止。 异常信息:System.TypeInitializationException 堆: 在 MyProgram.App.Main()
错误应用程序名称:MyProgram.EXE,版本:2012.9.4.0,时间戳:0x53628262 错误模块名称:KERNELBASE.dll,版本:6.1.7601.18229,时间戳:0x51fb1677 异常代码:0xe0434352 故障偏移量:0x000000000000940d 故障进程ID:0x1b18 错误应用程序启动时间:0x01cf8f6f7c57dd1d 错误的应用程序路径:c:\WritableFolder\MyProgram.EXE 错误模块路径:C:\Windows\system32\KERNELBASE.dll 报告 ID:baa30260-fb62-11e3-b7d9-a0d3c10c1ecc
谢谢(这不是事件日志消息的一部分)
【问题讨论】: