Visual Studio 2017启用Edit and Continue后代码文件锁定问题求助
我之前在VS2017里也踩过Edit and Continue(简称ENC)的坑,结合你的情况,给你几个具体的排查和解决方向:
检查项目级的调试配置(全局设置可能被覆盖)
全局的ENC启用设置有时候会被项目自身的配置覆盖。右键你的项目→属性:- 切换到「生成」选项卡,点击右下角的「高级」按钮,确保「调试信息」选择的是完整(不是pdb-only或其他选项);
- 切换到「调试」选项卡,确认「启用编辑并继续」选项已经勾选(部分项目类型会单独提供这个开关)。
启用托管兼容模式
VS2017默认的新调试引擎偶尔会和ENC存在兼容性问题。操作路径:Tools->Options->Debugging->General,找到「使用托管兼容模式」并勾选,然后重启Visual Studio再测试。这个方法在旧版本VS里解决过不少ENC失效的问题。排查文件的只读属性与版本控制影响
有时候文件本身的系统只读属性或者版本控制工具(比如Git、TFS)会锁定文件:- 右键出现问题的.cs文件→属性,取消「只读」勾选;
- 如果你用了版本控制,确保文件已经处于可编辑状态:TFS需要签出文件,Git则检查是否客户端把未修改的文件标记为只读(可以在Git客户端设置里调整)。
重置VS配置文件
你的settings.vssettings里已经显示ENC启用,但配置文件可能存在损坏。操作:Tools->Import and Export Settings,选择「重置所有设置」,备份当前设置后完成重置,再重新勾选ENC选项并重启VS。检查增量编译是否启用
ENC依赖增量编译功能。右键项目→属性→「生成」选项卡,确认「增量编译」已经勾选,没有被禁用。排查第三方扩展干扰
一些调试相关的第三方扩展可能会干扰ENC的正常工作。可以尝试用安全模式启动VS:打开命令提示符,运行devenv /safemode,在安全模式下测试Edit and Continue是否正常。如果恢复正常,就逐个禁用扩展排查出问题的那个。
如果以上方法都无效,考虑到你用的是15.9.6这个较旧的VS2017版本,微软在后续的补丁更新中修复过不少ENC相关的bug,你可以尝试升级到VS2017的最新补丁版本(记得先备份项目)。
内容的提问来源于stack exchange,提问作者BloodyMettle

