2009-11-04 82 views
2

我有使用編譯DLL從另一個Visual Studio解決方案的ASP.NET網站(有DLL的原始解決方案 - .cs文件,.csproj.sln等)作爲參考。的Visual Studio調試參考DLL

有一個例外來到這個DLL的網站,我想調試它(DLL)。我可以這樣做嗎?我能不能深入瞭解DLL,設置斷點等等?我聽說過「附加調試器」,但我從來沒有這樣做過,當然也沒有DLL。有什麼步驟來做到這一點?

回答

6

堆棧溢出問題Debugging a third-party DLL in Visual Studio.NET?問同樣的問題。答案基本上是使用.NET Reflector反編譯DLL並查看代碼。

但是,如果您有DLL的解決方案和所有源代碼,那麼您可以將引用更改爲指向另一個項目而不是DLL。然後,您可以像代碼中的任何其他代碼一樣進入功能。

如果您有代碼,另一種方法是運行應用程序並附加到進程。爲此,您可以在Visual Studio中打開另一個解決方案,並將調試器附加到ASP.NET工作進程(如果我正確記得的話,可以使用aspnet_wp或類似的東西)。這將允許您設置斷點,並在您訪問網站的正確部分時觸發它們。例如,您將在本地IIS的Internet  資源管理器中瀏覽本網站的ASP工作進程。如果你在Visual Studio中運行它,那麼它很可能會使用內置的Web瀏覽器。所以你需要重視這一點。

如果您還有DLL的pdb文件,可能有辦法做到這一點,但我從來沒有真的試過這樣做。我知道如果你有pdb文件,那麼當你使用WinDbg等工具進行調試時,你可以獲得源代碼。