我有一個調用一些C#DLL的VB.Net項目,但我該如何調試C#代碼?.NET:另一種語言的調試項目
它必須是可能的,因爲當發生異常時,VB.Net會在文本編輯器中打開C#代碼,但我希望能夠具有語法着色功能,在其他文件中設置斷點等。這一定很明顯,但我無法弄清楚。
我有一個調用一些C#DLL的VB.Net項目,但我該如何調試C#代碼?.NET:另一種語言的調試項目
它必須是可能的,因爲當發生異常時,VB.Net會在文本編輯器中打開C#代碼,但我希望能夠具有語法着色功能,在其他文件中設置斷點等。這一定很明顯,但我無法弄清楚。
正常啓動調試會話。
然後一旦啓動,使用Visual Studio,文件/打開菜單打開正確的.cs文件。如果你有一個包含文件的dll的相應.pdb文件,你將能夠設置斷點,這些斷點將在你的調試會話中命中。
如果您沒有pdb文件,這意味着您的dll是在發佈配置而非調試配置下編譯的。
在此會話期間,您可能需要在進入語句時手動打開其他.cs文件。在進入它們之前打開所需的文件。
我已經手動添加這些文件,但C#項目有數百個文件,所以這是很多工作。我只是覺得有一種方法可以將整個項目很好地添加到解決方案中,並且具有語法着色功能,但也許這是不可能的。 – Muis
在運行項目(F5)之前,如果您擁有C#代碼(而不僅僅是PDB),則可以使用File-> Open打開.cs文件並設置斷點。
如果您沒有.cs,則可以使用類似反射器的東西爲您生成.cs文件。
也應該可以用PDB創建斷點,但如果我已經中斷了正在運行的調試會話,那麼我只有成功了。
這應該工作。描述當你嘗試設置一個斷點時會發生什麼。 –
您能夠進入C#代碼的原因可能是您的.pdb文件包含您引用的.dll文件。不知道如何強制它不添加項目到您的解決方案。 – Nate
@HansPassant斷點適用於已打開的C#文件,但要在另一個文件中設置斷點,我首先必須手動將其添加到項目中。但也許這是唯一的方法。 – Muis