Visual Studio的编辑并继续功能无法正常工作

28

我的项目是一个混合项目(之前它是一个Web Forms项目,然后我们修改为使用MVC模式)。

现在我想在调试模式下更改cs文件中的某些内容,然后希望更改后的代码运行。

我尝试启用和禁用“工具”->“选项”->“调试”->“编辑并继续”复选框部分。

当它启用时,我无法在调试期间更改项目中的代码。 当它被禁用时,我可以更改代码,但它不会影响运行部分,例如。

  int i = 0;
  if(i == 1)
    return 1;
  else
    return 2;

在调试模式下,我将i更改为1,但仍然返回2,只有当我停止并重新运行调试器后,它才会生效。

 int i = 1;
  if(i == 1)
    return 1;
  else
    return 2;

顺便说一下,我正在使用Visual Studio 2010版本。


2
有几个有用的答案可以回答另一个问题 - Dialecticus
禁用编辑和继续不会改变代码的行为,这应该是显而易见的。E+C有一些限制,特别是不支持64位程序。在VS2013中已经修复了这个问题。微软并没有保密,可以在此MSDN页面中找到详细的说明。 - Hans Passant
作为结果,我应该怎么做呢?它说启用 E+C,但我想说的是,我尝试了两种情况,但都没有解决我的问题。 - brtb
11个回答

17

这不是我的问题;我发现在运行VS2017 RC2时,在“工具”-〉“选项”-〉“调试”-〉“即时 - 我的“托管代码”未被选择。

出现了一个警告:“另一个调试器已将自己注册为即时调试器。通过启用即时调试或运行Visual Studio修复来解决。”

我没有注册任何其他调试工具!所以不知道为什么会取消选择...

因此,解决方法就是简单地勾选“托管”框...


我必须这样做,并重新启动Visual Studio才能使更改生效。 - Zout
一样。最初是选择_Native_选项,但最终选择了全部三个选项。在某些设置中,尝试在没有提升权限的情况下更改这些选项会再次出现"Another debugger has registered itself…"的错误提示。 - Laurie Stearn

15

没有给出的答案有效。这是我所做的。

  • 我修复了VS安装程序,我的版本是2017。
  • 我取消了本地代码复选框的选择。

输入图像描述


感谢提供的信息,启用后我成功开启了编辑并继续功能。 - fizmhd

10

以上方法都没有单独为我解决问题,但是一旦取消“启用本机编辑和继续”选项,问题就得到了解决:在“工具”->“选项”->“调试”->“常规”下进行操作。

输入图像描述


7
  1. 在 "工具" -> "选项" -> "调试" -> "常规" 下:勾选“启用编辑和继续”框。
  2. 在 "工具" -> "选项" -> "调试" -> "即时" 下:勾选“托管代码”框 查看托管代码的图片
  3. 保存并重启 Visual Studio。如果您收到有关提升的权限的警告,请接受此对话框。您的更改尚未保存。重新启动后,再次转到“工具”->“选项”->“调试”->“即时”,如果没有显示选中状态,请勾选“托管代码”框。保存并重启 Visual Studio。

1
是的,重新启动是必要的。 - Patrick
我的电脑上没有"Just-In-Time"。 - Literate Corvette

6
这个问题的解决方案可以在Microsoft文档中找到...您需要启用工具->选项->调试->编辑和继续...还有更多要做...
如果启用了IntelliTrace并且收集了IntelliTrace事件和调用信息,则编辑和继续功能将被禁用。
在Visual Studio菜单上选择“工具”>>“选项” - 选择“IntelliTrace”选项卡,仅勾选“IntelliTrace事件”..保存,重启Visual Studio....
你的编辑和继续将再次工作!

1
你只能在企业版中使用 IntelliTrace 功能,而不能在专业版中使用。 - h-rai
1
我不得不完全禁用IntelliTrace才能使“编辑和继续”功能正常工作。 - raterus
2
它不适用于VS 2019。 - Ole K

1
我发现我的
VS2019: Project (context menu) =>
Properties =>
Debug =>
Debugger engines =>
Enable native code debugging

被打开了。取消勾选后,“编辑并继续”问题消失了!

注意:在发现这个方法之前,我已经尝试了建议的修复方法(在此处)。


0

修复VS安装并升级到最新的VS2017版本:15.9.19已经为我解决了问题。

h-rai的答案给了我需要的线索:取消勾选本机选项框会出现一个警告,说明已注册另一个JIT调试器。

然后,我在这篇文章here中找到了更多线索。

也许,我的问题是由于已安装新的.NET Core 3.1,但尚未将VS2017升级到VS2019引起的。

现在,当我取消勾选“Native”复选框时,不会再收到关于另一个JIT调试器的警告,我可以在调试时修改代码了。


0
如果您已经更新了调试选项但“编辑并继续”仍然无法工作,请尝试清理和重新构建项目。(在VS 2022中对我有效)

0

在此之前,默认情况下启用了运行时编译。对于针对.NET Core 3.0+的项目,用户需要按照以下说明显式启用该行为 https://learn.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0

从Nuget包管理器中安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

运行以下命令:
Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 5.0.7 并在Startup文件中添加以下行

services.AddRazorPages().AddRazorRuntimeCompilation();


0

编辑和继续不起作用 - 这为我修复了它 - 它是针对VS2017的,最近(2019年3月)开始出现这种情况。看起来NCover设置了系统变量COR_ENABLE_PROFILING = 1。卸载它可以让我摆脱它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接