0

(以下の更新を参照)

VisualStudio 2010 環境内で実行している間、Winform アプリケーションが例外を引き起こしているかどうかを簡単に知ることができます。Debug | に行くだけです。チェックボックスの両方の列がチェックされていることを確認してください。次に、アプリケーションを実行し、例外が発生した場合は、問題のあるコードに直接ドロップされます。

テスト ビルドをテスターに​​渡すときに、テスト中に例外を特定するにはどうすればよいですか。通常のユーザーと同じように、テスターを Visual Studio 内で実行したくありません。例外と関連する詳細があるかどうかを知りたいです。

明らかに、コードがリリースされたときに通常の実行が行われるように、プロセスを制御できる必要があります。

はい、try/catch ブロックについては知っていて使用していますが、Visual Studio の例外キャッチャーおよびレポーターに似た方法について話しているのですが、製品にコンパイルされ、ベータ テスターへの展開に使用される可能性があります。

おそらくVisual Studioにはそのような機能があり、その場合、どこでどのようにセットアップするか、またはおそらくサードパーティのコンポーネントです。

[更新: Unhandled Exception next line または exitで見つけることができる 2 つのサブ質問を追加しました。

以下で説明する解決策は素晴らしいように思えますが、微調整を加えればおそらく機能しますが、現時点ではそうではありません.

Visual Studio 内では、2010 と現在の 2012 の両方がうまく機能します。例外ハンドラが呼び出されます。VS がその行で中断した後、続行します。VS2012 IDE の外部でテストすることにしました。OS はバグをトラップし、「ハンドルされていない例外が発生しました」というダイアログを標準で表示し、続行ボタンと終了ボタンとともに詳細を示します。[続行] を選択すると、Uber 例外ハンドラーにトラップされることなく、アプリケーションが続行されます。完全を選択すると、アプリケーションが白くなり、標準のウィンドウを閉じるダイアログが表示されます。終了ボタンも私のuberハンドラーを呼び出しません。

目的は、私の例外ハンドラーが呼び出されるようにすることです。VS2012 IDE 内で作業している場合、uber 例外ハンドラーは必要ありません。ハンドラーの目的は、エンド ユーザーとベータ テスター、つまり、私以外の、私の開発ステーションを持っていない人のためのものです。

したがって、何かが欠けていない限り、質問はまだ未解決です。

他の質問には、数分でテスト アプリケーションをコピー アンド ペーストして作成するのに十分なコード サンプルがあります。]

前もって感謝します、

サラ

4

2 に答える 2

1

Visual Studioでエラーを報告する自動魔法の方法はわかりませんが、これが私が行うことです。

  1. アプリケーションのUnhandledExceptionイベントにフックします。

  2. nLogやLog4Netなどのログフレームワークを使用して、そのイベントから取得した例外やその他のデータをログに記録します。または、テキストファイルに書き込むだけです。

  3. アプリケーション内からそのデータをアップロードするか、ベータテスターに​​送信してもらいます。

于 2012-09-11T22:40:52.313 に答える
0

さて、Google Uberlord は私に同情し、この素晴らしい記事が問題を解決しているのを見つけました。全能の Google に敬意を表します。

リンクは次のとおりです 。 http://www.switchonthecode.com/tutorials/csharp-tutorial-dealing-with-unhandled-exceptions

基本的に、JRadness のアイデアは正しかったのですが、わずかに誤りがありました。彼は使うべきだった

Application.ThreadException += 

新しい System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

それよりも

AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

Switch on the Code の著者は 3 つの方法について話しました。最初の方法は JRadness が提案したものであり、Windows フォームでは機能しません。

作成者は、Continue と Abort に関する私のもう 1 つの質問も解決しました。OS がバイパスされました。

うん!!

于 2012-10-04T21:50:43.867 に答える