web-dev-qa-db-ja.com

VisualStudioソリューションの特定のプロジェクトで「ステップイン」デバッグを有効または無効にします

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

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

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

PDATE FOR CLARITY:「Justmycode」オプションは現在無効になっています。また、コードは同じソリューションのプロジェクトに属しているため、ここでは「コードだけ」オプションは適用されないと思います。ソースがないプリコンパイル済みコードにのみ適用されると思いましたが、プロジェクトにソースがあるため、このオプションは効果がないと思います。

21
SqlRyan

確認する必要があるのは、サポートプロジェクトAssemblyがGACにインストールされていないことです。コマンドプロンプトを開き、次のことを実行して確認してください...

gacutil/l assemblyName

7
SaaS Developer

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

15
Brian

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

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

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

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

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

13
SqlRyan

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

4
Jason Down

いくつかの可能性:

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

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

3
Neil

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

enter image description here

2

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

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

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

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

2
preethi mali