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

使用VS2022调试C#时无法修改代码(ENC1002错误)

解决VS2022调试C#时ENC1002错误:字典与TSUNAMI版本问题

错误里的“字典”是什么?

这个错误提到的“字典”是Visual Studio**即时编辑(Edit and Continue,ENC)**功能内部维护的映射表,用来跟踪调试会话中已加载的所有程序集及其版本、标识信息,确保你修改代码后能正确找到对应程序集并完成更新。错误提示里的TSUNAMI, Version=1.0.0.65535是ENC试图查找的程序集标识,但这个标识没出现在它的内部映射表中,所以触发报错。

问题原因分析

  • 版本号异常:你的项目版本是1.0.0,但错误里出现了65535(这是版本号字段的最大值,通常是用*自动生成版本号时的异常值),大概率是项目配置里的版本号设置用了自动生成,导致编译时程序集版本号错乱。
  • ENC缓存损坏:VS的即时编辑缓存可能出现数据不一致,导致它记录的程序集信息和实际加载的程序集不匹配。
  • 输出目录残留旧文件:项目的bin/obj目录里可能存在旧版本的TSUNAMI程序集,和当前编译的版本产生冲突。

解决步骤

  • 固定程序集版本号:右键项目→属性→应用程序→点击“程序集信息”,把“程序集版本”和“文件版本”改成固定值(比如1.0.0.0),不要用*自动生成。
  • 清理重建项目:点击菜单栏「生成」→「清理解决方案」,再选「生成解决方案」,之后重启调试会话。
  • 删除VS缓存文件:关闭VS,手动删除以下目录的缓存(路径里的<随机字符串>是你的VS实例标识,直接找对应版本的目录即可):
    • %LOCALAPPDATA%\Microsoft\VisualStudio\17.0_*\ComponentModelCache
    • %USERPROFILE%\AppData\Local\Temp\VSWebCache
  • 重置即时编辑功能:打开VS的「工具」→「选项」→「调试」→「常规」,取消勾选“启用编辑并继续”,重启VS后再重新勾选该选项。
  • 清理输出目录:手动删除项目根目录下的bin和obj文件夹,重新编译项目,确保输出的程序集版本正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:00:41