複数のプロジェクトを含む 1 つのソリューションがありますが、現在は 2 つしか実行していません。プロジェクト 1 は、リリース モードでは Windows サービスとして実行されますが、デバッグ モードではコンソール アプリとして実行されます。プロジェクト 2 は MMC スナップイン (出力タイプ = クラス ライブラリ) です。それらは WCF を介して通信します。
時間A
昨日、新しいビルドの後に最初にデバッグを開始したとき、コールスタック ウィンドウには次のように表示されました。
lines in service...
[External Code]
--Transition from Client to Server --
lines in client...
任意の行をダブルクリックして、その行に移動できました。どちらのプロジェクトでもブレークポイントを設定でき、ヒットします。
時間 B (その日の少し遅い時間)
すべてのプロジェクトを再ビルドしたばかりなのに、クライアント (プロジェクト 2)のブレークポイントに「ブレークポイントは現在ヒットしません。ソース コードは元のバージョンとは異なります」というフラグが表示されるようになりました。コードをいくつか変更しましたが、(私の知る限り) プロジェクトやビルドの変更はありません。「クリーン」な解決策を実行しましたが、それは役に立ちませんでした。コール スタックは、TIME A と同じように機能しました。
TIME C(翌日~今朝)
再起動しました。すべての obj および bin ディレクトリを削除しました。私はソリューション全体を再構築し、新たなスタートを切ることで状況が改善されることを期待して立ち上げました。今はもっと悪いです。ブレークポイントには、「ブレークポイントは現在ヒットしません。このドキュメントにはシンボルが読み込まれていません。」というフラグが付けられます。コール スタックが悪化し、クライアントが外部コードとして表示されます。
lines in service...
[External Code]
--Transition from Client to Server --
[External Code]
- コール スタックで [外部コードを表示]を選択すると、クライアント アセンブリ (もちろんシステム アセンブリと混在) の行が一覧表示されますが、すべてグレー表示されます。モジュール ウィンドウ (デバッグ >> ウィンドウ >> モジュール) に、クライアント アセンブリが表示されません。
- コール スタックの行からシンボル ロード情報を選択すると、5 つの異なる場所で「PDB ファイルが見つからないか、開くことができません」と表示されます。最も興味深い場所は、私のプロジェクトの obj/Release ディレクトリ (obj/Debug ディレクトリではありません) の下にあります。 -プロジェクトがデバッグ構成に設定されていても。
- コール スタックの行からシンボルの読み込みを選択し、obj/Debug または bin/Debug ディレクトリで pdb ファイルを選択すると、「一致するシンボル ファイルがこのフォルダーに見つかりませんでした」と報告されます。
- 構成マネージャーは、すべてのプロジェクトがデバッグ構成に設定され、すべてがビルドに含まれていることを示しています。
同様のSOの質問を確認しました。これにより、上記のすべてを調べることができましたが、状況の韻や理由はまだ見つかりませんでした.
Visual Studio をせん妄から救い、失われたシンボルを回復するにはどうすればよいですか?