2012-03-27 20 views
2

他のDLLで私自身のコードへの複数の参照を持つプロジェクトがあります。 dllの1つは、私がウェブサイトを走らせるときにpdbファイルをロードし、もう1つはロードしません。私はこれを見出力からPDBファイルは一部のプロジェクトではロードされません

LOTS_OF_TEXT \ Shared.BusinessLayer.DLL '
LOTS_OF_TEXT \ Shared.Visual.Utilities.DLL'、シンボルが読み込ま。

私がチェック倍増し、彼らの両方がその「LOTS_OF_TEXT」の場所に対応するPDBファイルを持っている...しかし、そのうちの一つは、シンボルをロード(およびデバッグが可能)が、他にはありません。

なぜですか? Symbolを読み込むためにShared.BusinessLayer.DLLを取得するにはどうしたらよいですか?彼らが変更されたときに

EDIT
は参考期すために、私は私のデバッグ設定はシンボルを探すためのVisual Studioを伝えるところである... /AppData/Local/Temp/SymbolCacheにベルヴェデーレコピーにPDBファイルを持っています。

+0

BTW ...ベルベールとは何ですか? googleの 'Belvedere C#'は何も役に立たない。 –

+1

.pdbsのコピーは一般的には悪い考えです。それらが生成された場所に残しておけば、実行可能ファイルは元のパスを保存します。デバッグ+ Windows +モジュール]を選択し、モジュールを右クリックし、[シンボルロード情報]を選択して、デバッガがpdbを探す場所を確認します。 –

+0

現在のビルド構成で、その特定のプロジェクトがデバッグ用に設定されていますか? –

答えて

2

vsvars cmdプロンプト(またはpowershell)を起動し、LOTS_OF_TEXTフォルダを参照します。 Visual Studioには、.dllまたは.exeの構造を調べることができる 'dumpbin.exe'というツールが付属しています。デバッグシンボルを検索するには、コマンドプロンプトでdumpbin /headers Shared.BusinessLayer.DLLと入力してdumpinを実行し、のヘッダー情報にシンボルパスが表示されていなければなりません。シンボルで実際にビルドされています。シンボルが存在するか、検索パス上にある限り、これらのシンボルはロードする必要があります。

Visual Studioで[ツール] - > [オプション] - > [デバッグ] - > [シンボル]を選択し、[シンボルを自動的に読み込む]ラジオボタンが[すべてのモジュール]に設定されていることを確認してください「除外されない限り」、除外リストには関連する画像が含まれていないことを示します。

+0

「ダンピング/ヘッダーをそのDLLで実行する」とはどういう意味ですか? –

+0

@James - dumpbin.exeは、.dllと.exeイメージのさまざまな側面を見ることができるビジュアルスタジオに付属するツールです。 dllにシンボルがある場合、それらのシンボルへのパスがイメージのヘッダーに書き込まれます。 –

+0

ありがとうございます - 私の場合、参照されている.exeファイルが "除外リスト" – Jonno

関連する問題