私のワークスペースには、AとBの2つのソリューションがあります。
ソリューションAは、以前にコーディングを終えた古いプロジェクトです。ソリューションBでは、ソリューションAのいくつかのクラスを使用する必要があります。これを行うには、ソリューションAのプロジェクトの1つのDLLへの参照を追加します。
問題は、デバッグしようとしたときです。私もAのコードに足を踏み入れたいと思っています。Visual Studioはこれらのクラスのコードを読み込むことができず(「現在の場所に使用できるソースコードがありません。」)、逆アセンブリのみを表示できるため、役に立ちません。
ソリューションAからクラスをデバッグする唯一の方法は、ソリューションBを実行し、すべてのプロセスを([デバッグ]メニュー項目で)デタッチし、ソリューションAからプロセスをアタッチすることです。
ただし、これは非常に不便であり、AまたはBを一度にしかデバッグできません。
参照されているdllのコードにステップインできるようにする方法はありますか(ソースコードがあります)?
解決策:私の間違いは、プロジェクトは単一のソリューションの一部にしかならないと思っていたことです。実際、プロジェクトはさまざまなソリューションの一部になることができます。
古いプロジェクトを参照する必要がある場合は、プロジェクトをソリューションに追加するだけです。これは、ソリューションエクスプローラー>追加>既存のプロジェクトで新しいソリューションを右クリックして行います。
その後、プロジェクト参照を追加できます。他の人が書いたように、自分のコード(または、変更とデバッグが必要になる可能性のある他のコード)へのdll参照の使用を完全に回避する必要があります。
ソリューションの設計方法に関する非常に優れたリファレンスは、MSDNにあります。