You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2017中Edit and Continue功能异常,调试单元测试时无法编辑求助

解决VS2017中单元测试调试时Edit and Continue失效的问题

我之前在VS2017里调试单元测试时也碰到过一模一样的Edit and Continue(简称EnC)失效问题,折腾了好一阵才解决,给你几个针对性的排查步骤:

1. 检查单元测试项目的核心调试/生成设置

这是最容易忽略的点——单元测试项目的配置可能和主项目独立设置:

  • 右键你的单元测试项目 → 属性
  • 切换到生成标签页:确保优化代码没有被勾选(代码优化会完全阻断EnC功能)
  • 切换到调试标签页:确认启用编辑并继续已经勾选
  • 同时确认当前配置是Debug而非Release(Release模式下EnC默认不可用)

2. 验证Test Explorer的调试会话配置

Test Explorer的默认调试规则可能会覆盖项目级设置:

  • 打开Test Explorer,找到目标测试方法,右键选择调试 → 设置
  • 在弹出的调试配置窗口中,确保启用编辑并继续选项处于勾选状态
  • 如果是批量调试测试,点击Test Explorer右上角的齿轮图标,检查是否存在禁用EnC的全局设置

3. 清理缓存并重启VS

VS的临时缓存文件偶尔会导致EnC功能异常:

  • 点击顶部菜单栏的生成 → 清理解决方案
  • 完全关闭VS,找到解决方案根目录下的隐藏文件夹.vs并删除(该文件夹存放VS的临时配置与缓存)
  • 重新打开VS,重新生成整个解决方案后再尝试调试测试

4. 排查隐性的EnC限制场景

如果以上步骤无效,再检查这些容易忽略的细节:

  • 确认你修改的代码不在静态构造函数、异步方法的await块或动态生成的代码中(这些场景下EnC本身不支持,不过你改的是普通整数赋值,大概率不涉及,但仍需确认)
  • 打开工具 → 选项 → 调试 → 编辑并继续:确保未勾选禁止在模块加载后更改代码等限制选项
  • 调试时查看输出窗口(切换到调试分类),如果有EnC相关的错误提示,可根据提示进一步排查(比如某模块被优化加载)

5. 确保调试会话仅附加目标进程

单元测试调试有时会同时附加测试运行器进程(如vstest.executionengine.exe),导致EnC失效:

  • 断点触发后,点击调试 → 附加到进程,确认仅你的单元测试项目进程被附加,而非测试运行器进程
  • 或右键单个测试方法,选择仅调试此测试,避免同时启动多个测试进程

内容的提问来源于stack exchange,提问作者Catherine McDowell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:25:08