私が取り組んでいるチームプロジェクトでは、ファイルにブレークポイントを設定すると(たとえばIdeasController.cs
)、ソリューションに同じ名前の別のファイルがある場合、デバッガーの動作が不安定になります。私はいくつかの開発者のワークステーションで問題を再現しました。
例
WebAPIにブレークポイントを設定しましたIdeasController.cs
。
と呼ばれる別のファイルIdeasController.cs
が、別のMVC4Webプロジェクトに存在します。以下のスクリーンショットでは、デバッガーにApi->IdeasController
ソースコードが表示されていますが、行の強調表示はのコード構造と一致していますWeb->IdeasController
。ブレークポイントが複製され、そのうちの1つがコメントブロックの中央にあります。
[ブレークポイント]ウィンドウには、両方のファイルのブレークポイントが同時に表示されます。
一部のワークステーションでは、デバッガーは正しい行をステップスルーします(行のハイライトに関係なく)。他の人には、無関係な行(コメントや空白を含む)を元気よくステップスルーします。これは、表示することを選択したソースファイルによって異なると思います。
私が試したこと
私はインターネットをトロールしました。*.pdb
この種の問題は、デバッグファイル( )、ソースファイル、およびコンパイルされたコードの間に不一致がある場合に発生するようです。考えられる原因はたくさんあります。ファイル名の重複(デバッガー[5]を混乱させる可能性があります)、古いプロジェクトビルドファイル、無効なソリューションキャッシュ、または不適切なビルド構成です。
これらは私が見つけて試した解決策です:
- ビルド構成を確認しました。
- プロジェクトがリリースモードでビルドされていないことを確認してください。
- コードの最適化が有効になっていないことを確認してください。
- プロジェクトのデバッグモジュールが正しくロードされていることを確認しました。(プロジェクトのデバッグを開始し、
Debug
>>をチェックしました。両方のアセンブリがWindows
一覧Modules
表示され、最適化されておらず、シンボルステータスが「Symbolsloaded」になっています。)
- デバッグメタデータとVisualStudioキャッシュをリセットします。
これらのどれも効果がありませんでした。ファイルの名前を(クラスの名前を変更せずに)一時的に回避するために名前を変更できますが、それは理想からはほど遠いものです。
私が今いるところ
私の最新のGoogle検索の14ページ。提案をいただければ幸いです。:)