我有一個呼叫 Web 服務的 C# COM Interop DLL。(此 DLL 從本機 C 代碼中使用 - 在 C# 中訪問 Web 服務比在 C 中更容易。)此 DLL 最初是為 .NET 1 撰寫的,但已更新為 .NET 4,并且在 .NET 中作業4.
最近,DLL 停止正常作業,所以我正在嘗試除錯它,但斷點不起作用。我使用的是 VS2019,并且除錯選項設定為運行我的 C 程式來訪問 DLL。
最初,斷點可以在 C# 函式中設定,但是一旦我開始除錯會話,斷點就會禁用。我用谷歌搜索,找到了一些可能導致這種情況的專案設定的參考,并嘗試了一些方法,但無濟于事。然后我使用“類別庫(.NET 框架)”模板重新構建了該專案。現在,斷點將保持活動狀態,直到應用程式使用斷點呼叫函式,然后斷點禁用。它顯然是識別斷點,然后禁用它而不是停止。
有什么建議?
uj5u.com熱心網友回復:
在黑暗中拍攝的答案。在要用于除錯 DLL 的 EXE 的專案設定中,嘗試更改除錯器型別設定。(專案屬性 -> 除錯 -> 除錯器型別)
根據您的描述,它聞起來像是在“自動”或“僅限本機”上。假設您不需要 C 代碼中的斷點,如果“Mixed”選項不能可靠地作業,您可以嘗試“Managed Only”。

uj5u.com熱心網友回復:
要在 Visual Studio IDE 中除錯 DLL 專案,請遵循我在下面分享的指南:
- 如何從 DLL 專案除錯?
- 除錯 DLL 專案
- C 除錯配置的專案設定
更新Microsoft.VisualStudio.Debugger.Interop.10.0包以防萬一。
注意:我給出了一個籠統的答案,因為這是一個籠統的問題。如果達到錯誤的詳細程度,我會盡力而為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388777.html
上一篇:如何按列值過濾矩陣的行?
下一篇:從32位DLL訪問64位DLL
