我已经检查了Visual Studio中的“启用.NET Framework源步进”调试选项,创建了一个符号缓存目录。现在,当我调试项目时,Visual Studio会创建一个对话框,说“下载公共符号”并列出引用的模块。每个引用的模块都会发生这种情况。
结果是我有时候等待几分钟才开始调试。
可以点击“取消”直接进入调试。然后我调试它接下来它停止的地方。
查看我的HTTP流量,似乎每个模块都会在referencesource.microsoft.com上查找符号。由该服务器托管的符号(即,像system.dll这样的Microsoft模块)将下载到符号缓存中。其他符号在符号缓存的“FailedLoads”文件夹中获取文件,文本“PDB Not Found”。即使“选中”将“源服务器诊断信息消息打印到输出窗口”,也没有在“输出”窗口中找到有关失败的信息。
一旦模块在缓存中有符号或在FailedLoads文件夹中有文件,它就不会再次出现对话框。因此,让过程完成一次,解决了缓慢的调试启动时间,直到添加新的引用。
我尝试了几件事来看看会发生什么。没有任何指向真正的解决方案。
我在VS2013 Update 1,VS2015 Update 3和VS2017 RC上重现了这个问题。有趣的是,我相信我已经使用VS2013多年没有这个问题了。我认为它是在几个月前开始的,当时我改用VS2015。
是否有人知道这是否是已知错误,或者是否有办法在禁用此行为时启用.NET Framework源代码?