49

私が取り組んでいるチームプロジェクトでは、ファイルにブレークポイントを設定すると(たとえばIdeasController.cs)、ソリューションに同じ名前の別のファイルがある場合、デバッガーの動作が不安定になります。私はいくつかの開発者のワークステーションで問題を再現しました。

WebAPIにブレークポイントを設定しましたIdeasController.cs

コードで設定されたブレークポイント

と呼ばれる別のファイルIdeasController.csが、別のMVC4Webプロジェクトに存在します。以下のスクリーンショットでは、デバッガーにApi->IdeasControllerソースコードが表示されていますが、行の強調表示はのコード構造と一致していますWeb->IdeasController。ブレークポイントが複製され、そのうちの1つがコメントブロックの中央にあります。

デバッガーのハイライトがコード構造と一致しません

[ブレークポイント]ウィンドウには、両方のファイルのブレークポイントが同時に表示されます。

ブレークポイントは両方のファイルにまたがる

一部のワークステーションでは、デバッガーは正しい行をステップスルーします(行のハイライトに関係なく)。他の人には、無関係な行(コメントや空白を含む)を元気よくステップスルーします。これは、表示することを選択したソースファイルによって異なると思います。

私が試したこと

私はインターネットをトロールしました。*.pdbこの種の問題は、デバッグファイル( )、ソースファイル、およびコンパイルされたコードの間に不一致がある場合に発生するようです。考えられる原因はたくさんあります。ファイル名の重複(デバッガー[5]を混乱させる可能性があります)、古いプロジェクトビルドファイル、無効なソリューションキャッシュ、または不適切なビルド構成です。

これらは私が見つけて試した解決策です:

  • ビルド構成を確認しました。
    1. プロジェクトがリリースモードでビルドされていないことを確認してください。
    2. コードの最適化が有効になっていないことを確認してください。
    3. プロジェクトのデバッグモジュールが正しくロードされていることを確認しました。(プロジェクトのデバッグを開始し、Debug>>をチェックしました。両方のアセンブリがWindows一覧Modules表示され、最適化されておらず、シンボルステータスが「Symbolsloaded」になっています。)
  • デバッグメタデータとVisualStudioキャッシュをリセットします。
    1. Visual Studioを閉じ、ソリューションキャッシュファイルを削除しました(*.suo)。[1]
    2. 各プロジェクトのビルド出力(binおよびobjフォルダー)を削除しました。(今後の参考のために:Windowsエクスプローラーでソリューションフォルダーを開き、検索ボックスに次のように入力します:" type:folder AND (name:=bin OR name:=obj)"。
    3. アセンブリキャッシュフォルダを削除しました(C:\Documents and Settings\<user>\Local Settings\Application Data\dl3)。[2] [3]

これらのどれも効果がありませんでした。ファイルの名前を(クラスの名前を変更せずに)一時的に回避するために名前を変更できますが、それは理想からはほど遠いものです。

私が今いるところ

私の最新のGoogle検索の14ページ。提案をいただければ幸いです。:)

4

15 に答える 15

4

まったく同じ問題がありました。私にとってそれを解決したのは、影響を受けるプロジェクト/ソースファイルを含むソリューションに属する .suo ファイルを削除することでした。

ローカルのシンボルキャッシュも削除しましたが、それとは何の関係もないと思います。

(私のソリューションには複数のプロジェクトが含まれており、1 つのプロジェクトの 1 つのファイル (DataAdapter.cs) が影響を受けていました (VisualStudio は、System.Data.DataAdapter に属する pdb にブレークポイントを配置しました)。.csproj ファイルを直接開いて、正しく実行できました。ブレークポイントを設定します。)

于 2015-07-01T09:19:37.563 に答える
1

また、すべてのプロジェクトをクリーンアップして再構築 (ビルドではなく) することもできます。

于 2016-09-01T20:08:25.293 に答える
0

ブレークポイントが間違ってヒットしているプロジェクトのすべての .pdb ファイルを削除します。これで問題は解決します。

于 2018-02-15T11:59:47.673 に答える