アプリケーションがクラッシュするたびにメッセージボックスが表示され、ログファイルを電子メールで送信するようにユーザーに依頼するように、WP8 アプリケーションのエラーログを作成しました。
これは、App.xaml.cs で実装した方法です。
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
//File Handler for Log file
Log.write("some string here");
MessageBoxResult result = MessageBox.Show("String", "String", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK) // BREAKPOINT here
{
EmailComposeTask emailComposeTask = new EmailComposeTask();
emailComposeTask.Subject = "Unhandled Exception";
emailComposeTask.Body = "Device OS Version: " + Environment.OSVersion.ToString() + "\n\n" + Log.readFile();
emailComposeTask.To = "email@email.com";
emailComposeTask.Show();
}
if (Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
Debugger.Break();
}
}
if (result == MessageBoxResult.OK)
デバイスでのデバッグ中に、すべてが正常に機能し、ブレークポイントを入力した場合、または前の行にログの内容をメールに送信できましたemailComposeTask.Show();
ブレークポイントを無効にすると、MessageBox は表示されますが、emailComposeTask
表示されません。
何が問題なのですか?ブレークポイントを削除したときではなく、デバッグとブレークポイント中にのみ機能します。