好的,在解決如何在運行時在正在運行的應用程序中熱加載DLL(請參閱我的previous post)後,我注意到在新加載的DLL中插入的斷點不是擊中。在運行時從另一個AppDomain調試動態加載的DLL
形勢
我有我想要避免終止/重新運行每次我作出改變,以動態加載的DLL(反射)時間
目標
這裏是一個服務器應用程序我試圖做的(我知道這是不可能的本身):
- 運行Application.exe
- 載入到它Process.dll在newAppDomain和運行過程
- 調試Process.dll
- 卸載Process.dll
- 編輯處理代碼,重新編譯Process.dll
- 動態加載它Application.exe
- 調試Pro cess.dll
- 等...
問題
我注意到,當Application.exe在調試模式下,從另一個AppDomain中加載代碼啓動不可達由安裝調試Application.exe (我想,如果我只是直接從可執行文件啓動Application.exe,有沒有辦法讓VS調試器來調試任何東西,inluding新加載的DLL)
Prossible解決方法
一個解決方法(醜)解決方案是將DLL的「注入」分離成單獨的可執行文件中的正在運行的應用程序,然後由VS調試器監視它們。我承認我有點困惑。 任何高效,乾淨的想法?
這很奇怪。我有一個應用程序服務器,它將應用程序加載到輔助應用程序域中,並且我沒有設置斷點的問題。 Process.dll文件是用於啓動Application.exe的解決方案的類項目的輸出嗎? – 2011-02-04 11:25:02
聽起來像在你引用的問題中,你沒有解決卸載程序集的問題。在這種情況下,由於調試符號不匹配,您的代碼不會中斷。 – 2011-02-04 15:45:14