実行時に実行中のアプリケーションでDLLをホットロードする方法を解明した後で(私のprevious postを参照)、新しく読み込まれたDLLに挿入されたブレークポイントはヒット。ランタイムで別のAppDomainから動的にロードされたDLLをデバッグする
状況
私は終了/再実行されている。ここ
がある私は(リフレクションによって)動的にロードされたDLLに変更を加えるたびに
目標を避けたいサーバーアプリケーションを持っています私は何をしようとしています(私はこれができない場合があります認識しています自体):
- 実行Application.exe
- それにロードnewAppDomainでProcess.dll及び実行プロセス
- デバッグProcess.dll
- アンProcess.dll
- 編集処理コード、Process.dll
- を再コンパイル動的に再ロードしてくださいApplication.exe
- デバッグPro cess.dll
- 等...
問題
私はApplication.exeは、デバッグモードで起動したときに、別のAppDomainからロードされたコードが接続デバッガによって到達不能であることに気づきましたApplication.exe (私は、実行可能ファイルから直接Application.exeを起動すると、私は推測する、何かをデバッグするデバッガVS取得する方法が新たにロードされたDLLをinluding、ありません)
Prossible回避策
回避策(醜い)ソリューションは、別の実行可能ファイルに実行されているアプリにDLLの「注入」を分離することである、それはVSデバッガで、その後、監視可能になり
私は少し混乱してい認めるMUS 。 効率的でクリーンなアイデアはありますか?
これは非常に奇妙です。私はセカンダリアプリドメインにアプリケーションをロードするアプリケーションサーバを持っており、ブレークポイントの設定に問題はありません。 Process.dllファイルは、Application.exeの起動に使用するソリューションのクラスプロジェクトの出力ですか? –
あなたの参照している質問のように、アセンブリのアンロードに関する問題は解決していないようです。その場合、デバッグシンボルが一致しないため、コードが破損することはありません。 –
あなたのアプリケーションがdllをロードしている場所は、dllがデバッグモードでビルドされている場所ではない可能性があります。 – Asher