1

私たちのアプリケーションの中核となるプロジェクトがあります。いくつかの DLL と EXE をビルドします。

次に、ビルド済みのコア DLL と EXE を使用し、必要に応じてカスタマイズ/追加ビットを追加するカスタム プロジェクトを作成します。これらのカスタマイズは常に DLL であり、コア EXE が常に使用されます。コア DLL/EXE は、カスタム ソリューションによって参照されます。

カスタム DLL をロードするデバッグ中に少し問題が発生しました。EXE は事前にビルドされているため、EXE と残りの DLL の場所を指すスタートアップ プロジェクトとしてプロジェクトの 1 つを使用します。ただし、スタートアップ プロジェクトの DLL をロードしていないようです。

EXE が既にビルドされている場合、カスタム ソリューション/プロジェクトをどのように設定すればよいですか?

(注: カスタム DLL は、メタデータからリフレクティブに読み込まれるコンポーネントを提供します)

更新: 現在のアプローチは、すべてのコア DLL と EXE を bin/Debug ディレクトリにコピーするカスタム ソリューションの「最上位」プロジェクトにビルド後のイベントを設定することです。次に、その最上位プロジェクトをスタートアップ プロジェクトとして設定し、コピーした EXE を bin/Debug に指定します。次に、DLL が EXE と同じディレクトリにあるため (他のすべてのディレクトリと共に)、DLL が検出されます。

4

2 に答える 2

1

スタートアップ プロジェクトとして DLL を選択しても、DLL が実際に読み込まれることは保証されません。使用している EXE は、Assembly.Load/From() を使用して DLL をロードする必要があります。その時点で、デバッガーはステップインし、設定したブレークポイントをアクティブにします。

Debug + Windows + Modules ウィンドウから簡単にわかります。そのウィンドウにロードされた DLL が表示されない場合は、何も起こりません。デバッグする DLL をロードできるように、その EXE の正確な構成規則を確認する必要があります。

于 2010-09-17T14:36:31.713 に答える
0

.exe を実行してから、Visual Studio Debugger をプロセスにアタッチできます。.dll の .pdb が実行中のディレクトリにあることを確認してください。

于 2010-09-17T13:20:44.963 に答える