![](/img/trans.png)
[英]How do I create .NET framework 4.6 version of XUnit project in Visual Studio 2019?
[英]How do I debug .NET 4.6 framework source code in Visual Studio 2017?
這是我嘗試過的:
在Visual Studio 2017中創建了一個新的控制台應用程序(.NET Framework)。
添加了以下代碼:
static void Main(string[] args)
{
new Dictionary<int, int>().TryGetValue(3, out int x); //I want to step into TryGetValue() (this is just an example)
}
配置此處列出的設置: https : //blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/
已確認的符號將加載到“模塊”窗口中:
mscorlib.dll已加載符號。 4.6.1586.0構建者:NETFXREL2
試過:“踏入(F11)”
嘗試:“步入特定”| “System.Collections.Generic.Dictionary.TryGetValue”
兩者都只是跨過了界限。
我嘗試使用以下詳細信息配置VS: http : //www.symbolsource.org/Public/Home/VisualStudio
同樣的結果,調試器跨越了這一行。
我在這里看了答案: https : //stackoverflow.com/a/12432029/297451
但是這個版本似乎不是一個安全更新,搜索“site:support.microsoft.com/kb 4.6.1586.0”沒有產生任何結果。
我究竟做錯了什么?
這是答案,感謝Hans Passant。 請注意,此解決方案提出了其他問題。
確保https://referencesource.microsoft.com/包含您正在調試的確切版本。
按照此處的說明配置Visual Studio: https : //referencesource.microsoft.com/setup.html
確認符號已加載到“模塊”窗口中,並包含源索引。
通過提供有用的錯誤消息而不是靜默失敗,Microsoft可以使此過程更加健壯。
使用JetBrains dotPeek中的符號服務器功能 。 在努力使標准功能發揮作用之后,對我來說就像一個魅力:
如果這不起作用,可能是因為Visual Studio以前從Microsoft / NuGet下載了有問題的程序集的“錯誤”符號,並且正在使用它們而不是詢問dotPeek。 要檢查這一點,請開始調試並在模塊列表中找到相關的程序集(Debug> Windows> Modules) - 在該程序集的“Symbol File”下顯示的路徑中刪除PDB文件 ,然后重新啟動調試,dotPeek應該啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.