リリースモードでビルド/デプロイされた.NETアセンブリのスタックトレースに行を表示する方法はありますか?
更新:
私のアプリケーションは、3つのクラスライブラリプロジェクトと1つのASP.NET「ウェブサイト」プロジェクトに分かれています。私が追跡しようとしているエラーは、3つのクラスライブラリプロジェクトの1つにあります。 「オブジェクト参照がオブジェクトのインスタンスに設定されていません」エラーを生成しているクラスライブラリプロジェクトのpdbファイルのみをデプロイしました。
行番号はスタックトレースにまだ表示されていません。スタックトレースの行番号を取得するには、すべてのプロジェクトのpdbファイルを展開する必要がありますか?
実用的なソリューション
各アプリケーションにpdbファイルをデプロイすると、行番号の問題が修正されました。
VS2012では、プロパティの[パッケージ/ Webの公開]セクションでも[生成されたデバッグシンボルを除外する]のチェックを外す必要があります。
私の解決策
実行可能ファイルと同じフォルダーにpdbファイルをコピーします。
exeファイルを実行すると、行番号を表示できるようになりました。
これが理由です
http://msdn.Microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx
エラーを追跡するために、リリースビルドでPDBファイルを展開する必要があると感じる過去の問題に遭遇しました。理由は、あなたが言ったように、例外が非常に大きいメソッドで発生し、どこで発生したかを正確に特定できなかったからです。
これは、メソッドをより小さく、より詳細なメソッドにリファクタリングする必要があることを示している場合があります。 1つのサイズがすべての答えに適合するわけではありませんが、このアプローチは短期間(リファクタリング中にバグを頻繁に発見しました)および長期的には役立ちました。
ちょっとした考え。
ビルド/デプロイメントパッケージにデバッグシンボルを含めます。
VS 2008 Expressでは、[プロジェクトプロパティ]-> [コンパイル]-> [高度なコンパイルオプション]にあります。