我的應用程序在客戶端PC上給出了一個錯誤'不支持指定的方法'。我不知道問題來自哪裏。他沒有安裝Visual Studio,因此無法進行調試。錯誤「不支持指定的方法」。獲取調用堆棧
如果我在應用程序中編寫一些調試代碼並給他新的exe,是否有任何方法可以在WPF中獲取調用堆棧?
我的應用程序在客戶端PC上給出了一個錯誤'不支持指定的方法'。我不知道問題來自哪裏。他沒有安裝Visual Studio,因此無法進行調試。錯誤「不支持指定的方法」。獲取調用堆棧
如果我在應用程序中編寫一些調試代碼並給他新的exe,是否有任何方法可以在WPF中獲取調用堆棧?
您可以訂閱DispatcherUnhandledException
以在應用程序級捕獲未處理的異常並記錄異常的堆棧跟蹤。在App.xaml.cs
public App() {
this.DispatcherUnhandledException += OnDispatcherUnhandledException;
}
void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) {
string errorMessage = string.Format("An unhandled exception occurred: {0}", e.Exception.Message);
MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
e.Handled = true;
}
的DispatcherUnhandledException
示例在一個大的圖片,你可以捕捉在例外情況: 你可以在不同級別的陷阱未處理的異常:
AppDomain.UnhandledException
從所有線程在AppDomain中。Dispatcher.UnhandledException
從一個特定的UI調度程序 線程。Application.DispatcherUnhandledException
從您的WPF應用程序的主UI 分派器線程。TaskScheduler.UnobservedTaskException
從每個AppDomain 內使用任務調度程序進行異步操作。你應該在 考慮你需要什麼級別來捕獲未處理的異常。決定#2和#3取決於您是否使用多個WPF線程。
我認爲產品已經在客戶端..不是op嗎? – Muds
最簡單的可能是用'ex.ToString()'獲得整個異常細節。這會向您顯示調用堆棧和任何內部異常詳細信息。 –