我寫處理主程序所有捕獲的異常C#應用程序:
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainFrame());
}
catch (Exception e)
{
CrashReporter.Report(e);
}
}
,當我運行的應用程序(甚至發佈版本)從視覺工作室它的作品。 但是,當我將它發佈爲click-once並安裝時,在大多數情況下,這些異常不會被捕獲到Main函數中。異常堆棧是這樣的:
...
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
即,主要是不在堆棧中... 爲什麼會發生這種情況? 有什麼辦法可以做到這一點'抓住所有'的事情? 爲什麼發佈與本地構建行爲不同?
在此先感謝 塞爾