我有一個桌面應用程序,我用Visual Studio開發,我需要更頻繁地更新應用程序的一小部分。爲了避免每次部署新安裝程序帶來的不便,我將更頻繁更新的支持功能拆分爲單獨的項目並將其編譯爲DLL。現在的桌面應用程序在與反射運行時加載這個DLL,然後進行實例化與接口定義的共享DLL裏面的對象,像這樣:Visual Studio 2005:調試來自不同項目的C#代碼?
Assembly a = Assembly.LoadFrom(supportDLLPath);
ISupportModuleInterface obj = (ISupportModuleInterface)a.CreateInstance("SupportCode.SupportObject");
if (obj != null)
{
obj.OnTransferProgress += new FileTransferProgressHandler(obj_OnTransferProgress);
obj.OnTransferComplete += new EventHandler(uploader_OnTransferComplete);
obj.DoWork(packagePath)
}
它正常工作的大部分時間,但我需要調試它的問題,我無法可靠地讓Visual Studio調試器進入它。有時當通過代碼按下F11時,比如在進入DoWork時,它會自動在我的系統上找到DLL的源代碼並顯示它。但是,當觸發事件時,Visual Studio僅在Call Stack中顯示[External Code]標記,並且我無法在支持項目中的代碼中導航。
有沒有人有任何想法如何解決這個問題,所以我可以正確調試支持項目?謝謝!
成功!它在將它指向PDB文件並重新啓動項目之後將其拾取。 – jasonh 2009-06-02 19:45:22