22

4 つの C# プロジェクトを含む Visual Studio ソリューションがあります。メイン プロジェクトからソリューションのサポート プロジェクトのコードにステップ インしたいのですが、[ステップ イン] キーを使用すると、他のプロジェクトへの呼び出しがスキップされます。サポート プロジェクトにブレークポイントを設定しましたが、それらは無視され、そのプロジェクトへの参照に踏み込むことはできません。

すべてが「デバッグ」としてコンパイルされるように設定されており、Visual Studio がブレークポイントが以前にヒットしないことを警告しているのを見てきました。この場合はそうではありません。コードがデバッグされるように見えますが、実行時に、そのプロジェクトのコードをステップ実行しないように Visual Studio に指示する設定がどこかにあります。私のソリューションの他のすべてのプロジェクトは、問題なくデバッグできます。

この動作を引き起こすために、どのチェックボックスをオンにしましたか?

明確にするための更新: [コードのみ] オプションは現在無効になっています。また、コードは同じソリューションのプロジェクトに属しているため、ここでは「自分のコードのみ」オプションは適用されないと思います。ソースを持っていないプリコンパイルされたコードにのみ適用されると思っていましたが、プロジェクトにソースがあるので、このオプションは何の効果もないと思います。

4

7 に答える 7

16

これが正しいかどうかはわかりませんが、「ツール>オプション>デバッグ>一般: マイ コードのみを有効にする」が可能性です。(私は常にこれをオフのままにしておくことを好みます。)

于 2008-10-21T16:14:24.330 に答える
14

デバッグする前に、アセンブリをGACにコピーする必要があることがわかりました。デバッグオプション「Justmycode」の下に、ユーザーコードがない場合にエラーを抑制するオプションがあり、次のエラーを抑制していました。

次のモバイルは、最適化が有効になっているか、デバッグ情報がない状態で構築されました。(モジュール名とパス)このモジュールをデバッグするには、ビルド構成をデバッグモードに変更します。

デバッグ構成でビルドしていたので、そのエラーメッセージを検索して、次のメッセージを取得しました。

http://claytonj.wordpress.com/2008/01/04/the-following-module-was-built-ether-with-optimizations-enabled-or-without-debug-information/

問題が解決しました。プロジェクトに参加するためにGACに含める必要がある理由はわかりませんが、そうです。私は理由を尋ねません、私はただ方法を尋ねます、そしてそれから私はそれをします...

于 2008-10-21T18:06:23.870 に答える
7

確認すべきことの 1 つは、サポートするプロジェクト アセンブリが GAC にインストールされていないことです。コマンドプロンプトを開き、次を実行して確認します...

gacutil /l assemblyName

于 2008-10-21T16:16:55.823 に答える
5

サポート プロジェクトに pdb ファイルがあることを確認する必要があります。そうしないと、Visual Studio はコードをステップ実行するために必要な情報を取得できません。

于 2008-10-21T16:17:23.637 に答える
5

ステップインしようとしている dll のソース コードがある場合は、次の手順を実行します。

  1. これらの dll が参照として追加されているプロジェクトをクリックし、それらを削除します。
  2. dll(s) に対応するプロジェクトをソリューションに追加します。
  3. プロジェクトを右クリック -> 参照を追加 -> 新しく追加したプロジェクトを選択します。

ブレークポイントを設定し、コードをデバッグします。コードにステップインできるようになります。

この問題の理由は、参照としてプロジェクトに追加されているため、プログラムがまだ古い dll (ソース コードなし) を参照しているためです。その dll を削除し、dll のプロジェクト (dll のソース コード) を追加すると、Visual Studio はコードにステップインできるようになります。

于 2012-03-23T19:31:02.147 に答える
3

いくつかの可能性:

  • 「自分のコードのみ」にステップインするためのチェックボックスがあります。その意図は、Microsoft のフレームワーク コードにステップ インできないようにすることです (ボックスのチェックを外して選択しない限り)。

  • サポート コードを再コンパイルして、デバッグしているコードが、見ているコード ファイルと正確に一致することを確認してください。VS はこれを考慮し、バージョンが一致しないコード ファイルにブレークポイントを配置すると、ブレークポイントを無効にします。また、PDB ファイルが DLL と同じディレクトリにあることを確認してください。

于 2008-10-21T16:21:38.793 に答える
2

Visual Studio 2013 でこの動作を引き起こす 1 つの方法は、ビルド構成を に設定することReleaseです。
に戻してDebug、それが役立つかどうかを確認してください。

ここに画像の説明を入力

于 2015-04-20T10:50:10.777 に答える