別のソリューションにある外部プロジェクト(B)クラスライブラリからアセンブリを参照するプロジェクト(A)があります。
プロジェクトAからプログラムを実行しながらBからクラスライブラリを効率的にデバッグする方法をまだ理解していません。デバッグ情報など、プロジェクトBで有効にする必要があるものがあるので、Aからデバッグ時にステップインできますか?
前もって感謝します。
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つをまっすぐに保つ方が簡単だと思います。
[この回答を送ってくれたMartin Beckettによると]
外部ライブラリにデバッグできます。
[プロジェクト設定]タブの[ソースコード]フィールドで[Visual Studioディレクトリ]を探し、openCVソースへのパスを含めます。次に、各デバッグdllの.pdbファイルがdllと同じディレクトリにあることを確認します。
Project(B)のブレークポイントがヒットしなかったため、同様の問題が発生していました。私の解決策は、dllを更新する必要があるため、project(B)を再構築してからproject(A)をデバッグすることでした。
Visual Studioを使用すると、外部ライブラリをデバッグできます。