我使用 VS2017,当我按 F5 时得到以下信息
它只发生在某些项目中,即使我在 VS 选项下禁用了符号支持。尽管在过去,对于相同的项目,即使启用了 Symbol 支持,它也不会抛出异常。
所以,因为我假设这一定是某种特定于缓存的 VS 设置项目,所以我删除了 bin、obj、.vs、SymbolSource 文件夹,但它们是一样的。
如果我启用“仅我的代码”,它不会抛出,但这不是我想要的,因为我无法调试已经有符号的程序集。
据我所知,即使启用了符号支持,如果没有在 VS 选项中声明相关的符号服务器,它也不应该抛出。
此行为不仅特定于 System.dll,而且即使我附加到没有符号的外部进程也会发生,这意味着再次使用“仅加载指定模块 VS”选项进行过滤不是我想要的。
那么,有没有人知道如何避免此类烦人的异常,同时允许对我配置的其他程序集使用符号支持。
这意味着你想进入 .net 框架源代码:
http://referencesource.microsoft.com/setup.html
http://referencesource.microsoft.com/indexedpdbs.txt
其实我们之前也向VS 2017的产品组反馈过这个问题:
如果你真的想避免它,我建议你在 TOOLS->Options->Debugging 下禁用像“Enable .NET framework source stepping”这样的设置。
要调试 .NET Framework 源代码,我们需要:
只禁用我的代码
禁用跨属性和运算符
禁用要求源文件与原始版本完全匹配
启用 .NET 框架源步进
启用源服务器支持
所以只要使用与上述选项相反的设置,再次调试即可。
另外,请在TOOLS->Options->Debugging->Symbols Server下启用symbols server,并启用异常设置窗口,查看详细的异常消息,也许你必须先解决Exception或从中获取任何有用的信息.
尝试取消选中调试托管服务。