即使我创建一个干净的 WinForms 项目,“编辑并继续”也不起作用并给出错误:

当调试器已附加到已运行的进程或正在调试的代码在构建或运行时进行了优化时,不允许进行更改。

  1. 在“工具”→“选项”→“调试”中选中“编辑并继续”选项。
  2. 未启用优化。
  3. 似乎没有设置任何托管探查器。
  4. 我正在调试模式下运行
  5. 我在 x64 CPU 和 Windows XP 32 位上运行,但将平台目标设置为 x86 而不是 AnyCpu 没有帮助。
  6. 修复 Visual Studio 安装没有帮助。

我还发现 本文 在 MSDN 网站上:

不支持的场景

编辑并继续在以下调试场景中不可用:

  • 在 Windows 98 上调试。

  • 混合模式(本机/托管)调试。

  • SQL 调试。

  • 调试博士沃森转储。

  • 当未选择“在未处理的异常上展开调用堆栈”选项时,在未处理的异常之后编辑代码。

  • 调试嵌入式运行时应用程序。

  • 使用“附加到”来调试应用程序,而不是使用“调试”菜单中的“启动”来运行应用程序。

  • 调试优化代码。

  • 当目标是 64 位应用程序时调试托管代码。如果要使用“编辑并继续”,则必须将目标设置为 x86。(项目属性、编译选项卡、高级编译器设置。)。

  • 由于构建错误而无法构建新版本后,调试旧版本的代码。

但我可以对此列表中的每一项回答“否”。

之前可以用,但是前几天就不行了,不知道是什么原因。

有帮助吗?

解决方案

我终于解决了这个问题: 卸载加里奥

Gallio 似乎有很多粗糙的地方,最好不要使用 MbUnit 3.0,而是使用 MbUnit 2.0 框架,但使用 gallio 运行程序,您无需从安装程序安装(它还安装了 Visual Studio 插件)即可运行。

顺便说一句,即使在“禁用”Gallio 插件后我也遇到了这个问题。只有卸载才能解决问题。

附言。夜间编码员编辑:
就我而言 禁用 TypeMock 隔离器 (模拟框架)最后 帮助了!编辑并继续现在有效!

以下是 TypeMock 支持的答案:

在进一步研究了编辑并继续问题之后,并与Microsoft进行了对话,我们得出了结论,无法解决隔离器。隔离器实现了CLR剖面,根据我们的研究,一旦启用并附加了CLR剖面仪,将自动禁用,编辑和继续。很遗憾地说,这不再被认为是一个错误,而是隔离器的限制。

其他提示

适用方案

这里有一个不完整的, 无序的 如果您*想快速修复“编辑并继续”,可以尝试的可能解决方案列表:

  • 确保您在 调试模式
  • 确保您没有启动混合模式进程
  • 尝试将CPU目标设置为 x86 而不是 任意CPU (在 x64 机器上)
  • 取消选中 优化代码 复选框 调试模式项目属性->调试
  • 取消选中 启用优化高级编译器设置
  • (ASP.NET) 检查 夜间编码器的回答 如果是这样的话
  • (ASP.NET) 检查 这个答案(来自matrixugly) 如果是这样的话
  • (ASP.NET) 确保您有 编辑并继续 启用于 网络 选项卡(与 2010 相比)
  • (ASP.NET) 转到 属性 > Web > 服务器, ,并确保 启用并继续 被检查在 使用 Visual Studio 开发服务器.
  • (ASP.NET WebAPI) 在尝试编辑控制器方法之前,请确保已使用断点停止该方法。
  • 工具 > 选项 > 调试 > 常规 并确保 要求源文件与原始版本完全匹配 未选中。
  • 您使用的是微软假货吗?它禁止编辑并继续。
  • 杀掉所有的 *.vshost.exe 通过选择实例 结束进程树 在里面 任务管理器. 。VS 将重新生成一个正确的实例。
  • 删除所有断点 调试->删除所有断点
  • 启用并继续 都存在于 工具 > 选项 > 调试 菜单以及 项目设置. 。请务必检查这两个地方。扩展 Intellitrace 设置不支持编辑并继续。
  • 确定 调试信息项目属性>构建>高级>输出>调试信息 被设定为 满的
  • 某些插件可能会干扰。通过禁用/卸载进行检查,然后再次尝试其他解决方案。
  • 如果您没有给予足够的重视,那么在尝试修复此问题时遇到的错误可能会变成其他更容易诊断的错误。例如。包含 lambda 表达式的方法不支持编辑并继续。
  • 确保系统变量 COR_ENABLE_PROFILING 未设置为 1. 。一些分析器在安装时设置此项,并在卸载后保持原样。打开命令提示符并键入 set 快速检查您的系统是否受到影响,如果是这样,请删除该变量或将其设置为 0:

    • 在 Windows 8 及更高版本中,搜索 系统 (控制面板)。
    • 点击 高级系统设置 关联。
    • 点击 环境变量.
    • 消除 COR_ENABLE_PROFILING
  • 意识到 不支持的场景 (如问题中所述)并且 不支持的编辑.

* 我所说的“你”是指正在敲击键盘寻找解决方案的页面访问者。

如果您有其他提示,请随时编辑此答案!

如果您正在调试 ASP.NET 应用程序,请转到“属性”>“Web”>“服务器”,并确保在“使用 Visual Studio 开发服务器”下选中“启用并继续”。

我有同样的问题。我什至重新安装了VS 2008,但问题并没有消失。但是,当我删除所有断点后,它就开始工作了。

Debug->Delete All Breakpoints

我认为发生这种情况是因为我删除了一个代码中有断点的 aspx 页面,然后我创建了另一个同名的页面。这可能会让 VS 2008 感到困惑。

有几件事需要检查

  • 确保您的编译设置为“调试”与“调试”发布
  • 确保您没有启动混合模式进程
  • 如果在 64 位机器上请确保将 CPU 目标设置为 x86 而不是 AnyCPU

编辑

我认为这并不重要,但请确保为目标平台启用托管进程。可能不会有帮助。

如果它在新项目中重现,那么它可能会更加微妙。我会尝试以下方法。

  • 备份 HKCU:\Software\Wow6432Node\VisualStudio\9.0 (也许只是重命名)
  • 删除相同的key
  • 再次尝试重现

如果您关心的是 ASP.NET 应用程序,请确保您已在 Web 选项卡上启用“编辑并继续”(vs2010)。在早期版本中还有一个单独的 ASP.NET 调试设置。

问候,

亚当。

上述解决方案都不适合我(在 64x 机器上运行)。

最后我点击了 'advanced compiler settings'未检查 'enable optimizations' 现在我可以在调试时单步执行代码并进行编辑。

我发现,即使在项目属性下的构建和调试选项卡下设置为调试,所有其他设置都是正确的,但我仍然会收到消息,但是在“构建菜单”下方挖掘更多之后,选择了配置管理器...并确保在两个地方也选择了“调试”。想想看...他们需要在多少个不同的地方设置调试??????即使您将“项目 - 配置”设置为“调试”,然后在“构建 - 管理器”下它也没有更改,因此您也在那里更改了相同的设置“项目配置” - 似乎又是一个微软问题......

此问题是由于 Intellitrace 设置造成的

如果启用了 Intellitrace,请确保仅选中 Intellitrace 事件

否则这将不允许编辑并继续..

如果您单击 Intellitrace 选项,您将看到警告。

以下拍摄帮助我使用VS2010:

转到“工具”、“选项”、“调试”、“常规”,并确保未选中“要求源文件与原始版本完全匹配”。

“编辑并继续”启用后,仅允许您在中断模式下编辑代码:例如通过因异常或命中断点而暂停执行。

这暗示着你 不能 在执行未暂停时编辑代码!在调试 (ASP.NET) Web 项目时,这是非常不直观的,因为您经常希望在请求之间进行更改。此时,您(可能)调试的代码没有运行,但也没有暂停!
要解决此问题,您可以单击“全部取消”(或按 控制键+替代+休息)。或者,在某处设置断点(例如在你的 Page_Load 事件),然后重新加载页面,以便执行在遇到断点时暂停,并且 现在 您可以编辑代码。甚至代码中 .cs 文件。

对我来说,由于我不明白的原因,“高级编译器设置”中的“生成调试信息”设置被设置为“仅 pdb”而不是“完整”。

默认情况下,此参数始终设置为“Full”,但昨晚神秘的恶作剧者更改了此参数。:)

附:我使用 Visual Basic .Net 和 Visual Studio 2010

我在 Microsoft Visual Studio 2008 中遇到了这个问题,解决方案很简单。当您运行项目时,请设置为“调试”模式而不是“发布”模式。另一个人的解决方案可能很有用。

当调试器未到达断点或您未单击“全部中断”(暂停)时,就会发生这种情况。事情不可能这么简单吧?

该错误表明可能的原因是:“正在调试的代码在构建或运行时进行了优化”。转到“项目属性”->“调试”,然后取消选中“调试模式”的“优化代码”框。

如果我创建一个新项目,调试时进行编辑将不起作用。如果我创建一个新网站,则在调试时可以按预期进行编辑。

一些似乎对使用 VS2010 有帮助的事情:

  • 转到“工具”、“选项”、“调试”、“常规”,并确保未选中“要求源文件与原始版本完全匹配”。
  • 例如,可以留下多个 .vshost.exe 实例将 VS 调试器与停止的进程分离。这也会干扰断点和编译。使用任务管理器的“进程”选项卡通过右键单击每个实例并选择“结束进程树”来终止 .vshost.exe 的所有实例。VS 将创建一个新实例。

我从项目中删除了一个数据集,因为我没有使用它。之后我就可以在调试时修改程序了。

我做了所有其他答案中提到的所有更改,但没有一个起作用。我学到了什么? 启用并继续 存在于“工具”>“选项”>“调试”菜单以及“项目设置”中。在我检查了两者之后,“启用”和“继续”对我有用。

我今天遇到了这个问题 - 事实证明,将调试信息设置为仅 pdb(或无,我想)将阻止编辑并继续工作。

首先确保您的调试信息设置为“完整”!

项目属性>构建>高级>输出>调试信息

对我有用的是取消选中“使用托管兼容模式”

工具->选项->调试

总碱值:选中或取消选中“要求源文件与原始版本完全匹配”似乎不会影响 E&C

希望这能有所帮助。

启用编辑并仅继续工作运行 IIS Express。不适用于本地 ISS 或外部主机。

就我而言,只需重置为默认调试器设置并设置 IntelliTrace-> only intellytrace events 有帮助

嵌入互操作类型 Visual Studio 应设置为 false

我在链接的类文件中发生了这种情况。项目的其余部分允许 E&C,但我在编辑链接文件时遇到了相同的错误。解决方案是将链接文件分解到它自己的项目中并引用该项目。

我遇到了同样的问题。我的问题是我可以修改一个文件,但不能修改另一个文件(两者都在同一个项目中)。后来我发现我无法修改的文件也是另一个项目的一部分。另一个项目(单元测试)未加载,并且 聪明的 VS 调试器显示错误:未加载此给定文件的程序集,并且不允许进行更改。多么奇怪啊!

因此,我必须卸载单元测试项目并继续 EnC 调试。

我的解决方案中有一个数据库项目,它阻止了 webforms 项目的编辑。

我在数据库项目上单击了“卸载”,现在一切正常。

对于 VS2017,它可以帮助删除解决方案中的 .suo 文件,它对我有用。:)

我在 Visual Studio 2005 中遇到了同样的问题。我的配置是64位的。它在其中一个 VS 解决方案上运行良好,但在另一个上则不然。我注意到我 仅有的 为我想在调试模式下进行更改的项目启用“启用编辑并继续”。当我为我的应用程序选择“启用并继续”时,这终于解决了我的问题 启动项目 以及。

除了需要启用和继续之外,没有任何配置更改。

似乎不合逻辑,但唯一的方法是禁用编辑并从 VS 2017 选项继续...然后AspNet编辑并继续开始工作......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top