回答:
Just My Code(JMC)を無効にしてみてください。
デフォルトでは、デバッガーは世界のビューをソリューション内にのみ含まれるコードに制限しようとします。これは時々本当に大変ですが、ソリューションにないコードをデバッグする場合(状況と同様)、それを表示するためにJMCを無効にする必要があります。それ以外の場合、コードは外部として扱われ、主にビューから隠されます。
編集
コードに問題がある場合は、次のことを試してください。
これはしばらくの間私を悩ませてきました。私が通常やっていることは、デバッグモードを使用して外部ライブラリを再構築し、.dllと.pdbファイルの両方を私のWebサイトのビンにコピーすることです。これにより、ライブラリコードに足を踏み入れることができます。
のパスを想定
事業 A
C:\Projects\ProjectA
事業 B
C:\Projects\ProjectB
ProjectBのDLLは
C:\Projects\ProjectB\bin\Debug\
デバッグするProjectB
からProjectA
、次の操作を行います
B
のdllファイルとDLLの.PDB
へProjectA
のコンパイルディレクトリを。ProjectA
ます。デバッグ中にdllのメソッドやイベントなどを呼び出す必要がある部分にコードが到達したら、を押しF11
てdllのコードにステップインします。注:.PDBファイルをコピーしてください
Visual Studioの2つのインスタンスを実行します。1つは外部DLL用で、もう1つはメインアプリケーション用です。
外部DLLのプロジェクトプロパティで、以下を設定します。
ビルドイベント:
copy /y "$(TargetDir)$(TargetName).dll" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).dll"
copy /y "$(TargetDir)$(TargetName).pdb" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).pdb"
デバッグ:
外部プログラムを起動します。 C:\<path-to-main>\bin\debug\<AppName>.exe
作業ディレクトリ C:\<path-to-main>\bin\debug
このようにして、外部DLLをビルドすると、メインアプリケーションのディレクトリで更新されます。外部dllのプロジェクトからデバッグにヒットした場合、メインアプリケーションは実行されますが、デバッガーは外部dllのブレークポイントにのみヒットします。メインプロジェクトからデバッグにヒットした場合、メインアプリケーションは最後にビルドされた外部DLLで実行されますが、デバッガーはメインプロジェクトのブレークポイントにのみヒットします。
私は1つのデバッガーが両方の仕事をすることを理解していますが、この方法で2つをまっすぐに保つ方が簡単だと思います。
プロジェクト(B)のブレークポイントがヒットしなかったため、同様の問題が発生していました。私の解決策は、dllを更新する必要があるため、プロジェクト(B)を再ビルドしてからプロジェクト(A)をデバッグすることでした。
Visual Studioでは、外部ライブラリにデバッグできます。
NuGetリファレンス
-Project_A(project_a.dllを生成する)-Project_B(project_b.dllを生成する)およびProject_BがNuGetパッケージによるProject_Aへの参照を想定し、project_a.dll、project_a.pdbをProject_B / Packagesフォルダーにコピーします。実際には、/ binにコピーする必要があります。
ここでProject_Aをデバッグします。デバッグ中にdllのメソッドやイベントなどを呼び出す必要がある部分にコードが到達したら、F11キーを押してdllのコードにステップインします。