Visual Studio 2015中C#代码断点失效,请求解决办法
嘿,我之前在VS2015里开发C#项目时,也碰到过一模一样的断点失效问题——设置好断点后代码直接跑完全程,根本不停下来。折腾了好几个办法才搞定,给你列几个最实用的排查步骤:
检查运行模式是否为Debug:很多时候是不小心切到了Release模式,Release默认会开启代码优化,断点自然不生效。把工具栏上的模式下拉框切回Debug,然后执行
Build -> Rebuild Solution重新生成整个解决方案。清理编译缓存:有时候旧的编译文件会干扰调试。先执行
Build -> Clean Solution清理解决方案,然后手动删除项目文件夹下的bin和obj两个目录,再重新生成项目。关闭Debug模式下的优化选项:即使是Debug模式,也有可能误开了代码优化。右键你的项目 → 属性 → 生成 → 点击“高级”按钮,把“启用优化”的勾选框去掉,确认后重新生成。
确认断点位置的代码会被执行:有时候断点设在了永远不会运行的代码块里(比如
if(false)包裹的逻辑),或者代码被编译器优化掉了(比如空方法、未使用的变量相关代码)。可以在断点那行加一句Console.WriteLine("断点行执行了"),运行后看控制台输出,确认这段代码确实会被执行到。重置VS调试配置:如果VS的配置文件出问题,也会导致调试异常。打开
工具 → 导入和导出设置 → 重置所有设置,选择“否,仅重置设置,从而覆盖我的当前设置”,然后选“Visual C#开发设置”,重启VS后再试。确认附加了正确的进程:如果是调试外部程序或者Web项目,要确保VS附加的是你正在运行的目标进程。打开
调试 → 附加到进程,找到对应的进程(比如你的项目.exe或者Web项目对应的w3wp.exe),勾选后点击附加。修复VS2015安装:如果上面所有方法都没用,可能是VS的组件损坏了。打开控制面板 → 程序和功能,找到Visual Studio 2015,右键选择“更改”,然后点击“修复”,等修复完成后重启VS再尝试调试。
内容的提问来源于stack exchange,提问作者Mazin

