146

リリースモードでビルド/デプロイされた.NETアセンブリのスタックトレースに行を表示する方法はありますか?

アップデート:

私のアプリケーションは、3つのクラスライブラリプロジェクトと1つのASP.NET「Webサイト」プロジェクトに分かれています。私が追跡しようとしているエラーは、3つのクラスライブラリプロジェクトの1つにあります。「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーを生成しているクラスライブラリプロジェクトのpdbファイルのみをデプロイしました。

行番号はまだスタックトレースに表示されていません。スタックトレースの行番号を取得するには、すべてのプロジェクトにpdbファイルをデプロイする必要がありますか?

実用的なソリューション

各アプリケーションにpdbファイルをデプロイすると、行番号の問題が修正されました。

4

8 に答える 8

154
  • スタック トレースの行番号を表示するプロジェクトの [プロパティ] ウィンドウに移動します。
  • ビルドの「垂直タブ」をクリックします。
  • 「リリース」構成を選択します。DEBUG定数パラメータを確認してください。
  • インライン コードで時折発生するトレースの問題を回避するには、[コードの最適化] パラメーターをオフにします (この手順は必須ではありません)。
  • Advanced... ボタンを押して、Output -> Debug Info -> pdb-only を選択します。
  • 生成された .pdb ファイルをアセンブリと共に配置します。

以下のコメントで実装されています。

  • チェックするもう1つのことは、「Webのパッケージ化/公開」セクションで、「生成されたデバッグシンボルを除外する」チェックボックスもオフになっていることです
于 2009-03-10T01:01:56.217 に答える
17

VS2012 では、プロパティの [Web のパッケージ化/発行] セクションで [生成されたデバッグ シンボルを除外する] のチェックも外す必要があります。

于 2014-01-29T20:50:20.193 に答える
16

私の解決策

実行可能ファイルと同じフォルダーに pdb ファイルをコピーします。

exeファイルの実行時に行番号を表示できるようになりました。

これが理由です

http://msdn.microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx

于 2009-09-03T20:10:54.983 に答える
10

過去に、エラーを追跡するためにリリース ビルドで PDB ファイルをデプロイする必要があると感じる問題に遭遇しました。その理由は、あなたが言ったように、非常に大きなメソッドで例外が発生し、どこで発生しているのかを正確に特定できなかったためです。

これは、メソッドをより小さく、より粒度の高いメソッドにリファクタリングする必要があることを示している可能性があります。万能の答えはありませんが、このアプローチは短期的には (私はリファクタリング中にバグを発見することがよくあります)、長期的には役に立ちました。

ちょっとした考え。

于 2009-09-03T20:27:20.840 に答える
4

ビルド/デプロイ パッケージにデバッグ シンボルを含めます。

于 2009-03-10T00:47:07.873 に答える
0

VS 2008 Expressでは、[プロジェクトのプロパティ]->[コンパイル]->[高度なコンパイルオプション]の下にあります。

于 2009-05-21T14:54:54.483 に答える