【问题标题】:visual studio edit and continue does not work视觉工作室编辑和继续不起作用
【发布时间】:2013-08-18 11:39:25
【问题描述】:

在我的项目中,它是一个混合项目(之前它是一个 Web 表单项目,然后我们修改为使用 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 版本。

【问题讨论】:

  • another question 有几个有用的答案。
  • 应该有点明显禁用编辑并继续不会在您编辑时更改代码行为。 E+C 有一些限制,特别是它不支持 64 位程序。已在 VS2013 中修复。微软不保密,this MSDN page 中很好地描述了什么可以工作
  • 结果我应该怎么做它说启用 E+C 但我要说的是我尝试了两种情况但它没有解决我的问题

标签: visual-studio-2010 debugging visual-studio-debugging


【解决方案1】:

此问题的解决方案在 Microsoft 文档中...启用工具后 -> 选项 -> debud -> 编辑并继续....还有更多工作要做..

如果 IntelliTrace 已启用并且您同时收集 IntelliTrace 事件和呼叫信息,则“编辑并继续”将被禁用。

在 Visual Studio 的菜单上,进入工具>>选项 - 选择“IntelliTrace”选项卡并让 IntelliTrace events only 选中.. 保存,重新启动 Visual Studio 并......

您的“编辑并继续”将再次起作用!

【讨论】:

  • 您只能在企业版上使用 IntelliTrace 功能,不能在专业版上使用。
  • 我必须完全禁用 IntelliTrace 才能让编辑继续工作
  • 它不适用于 VS 2019
【解决方案2】:

这不是我的问题;运行VS2017 RC2,我发现在Tools -> Options -> Debugging -> Just-In-Time - 我的“托管代码”被取消了。

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

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

所以解决方法只是勾选“托管”框....

【讨论】:

  • 我必须这样做并重新启动 Visual Studio 才能使更改生效
  • 这里也一样。 Native 最初是选项,但最终选择了所有三个选项。在某些设置中,尝试在没有提升的情况下再次更改这些会导致“另一个调试器已注册自身……”。
【解决方案3】:

给出的答案均无效。这就是我所做的。

  • 我修复了 VS 安装。我有 2017 版。
  • 我取消了本机代码复选框。

【讨论】:

  • 感谢您的信息,启用此功能后,我可以启用编辑并继续。
【解决方案4】:

Edit & Continue doesn't work - 这已经为我修复了 - 它适用于 VS2017 并且最近开始发生(2019 年 3 月)。 似乎 NCover 设置了系统变量 COR_ENABLE_PROFILING=1。卸载它会为我摆脱它。

【讨论】:

    【解决方案5】:

    上述方法均不适用于我自己,但是一旦我取消选中“启用本机编辑并继续”,它就会起作用:在工具 -> 选项 -> 调试 -> 常规下。

    【讨论】:

      【解决方案6】:
      1. 在工具 -> 选项 -> 调试 -> 常规下:选中“启用编辑并继续”复选框。
      2. 在工具 -> 选项 -> 调试 -> 即时:选中“托管代码”复选框Image Checking Managed Code
      3. 保存并重新启动 Visual Studio。如果您收到有关提升权限的警告,请接受该对话框。您的更改尚未保存。重新启动后,再次转到工具 -> 选项 -> 调试 -> 即时:如果未显示选中,请选中“托管代码”框。保存并重新启动 Visual Studio。

      【讨论】:

      • 是的,需要重启
      【解决方案7】:

      修复 VS 安装,并升级到当前最新的 VS2017 版本:15.9.19 为我解决了这个问题。

      h-rai 的回答给了我需要的线索:取消选中 Native 复选框会出现警告,指出另一个 JIT 调试器已注册。

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

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

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

      【讨论】:

        【解决方案8】:

        我发现我的

        VS2019: Project (context menu) =>
        Properties =>
        Debug =>
        Debugger engines =>
        Enable native code debugging
        

        已开启。取消选中此选项后,我的“编辑并继续”问题消失了!

        注意:在此发现之前,我曾尝试过建议的修复(此处)。

        【讨论】:

          【解决方案9】:

          只需按下 Break All 按钮,然后编辑您的代码,然后按下 Continue。 这对我来说就像一种魅力

          【讨论】:

            【解决方案10】:

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

            明确启用该行为

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

            运行以下命令:
            安装包 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 5.0.7 并在启动文件中添加以下行

            services.AddRazorPages().AddRazorRuntimeCompilation();

            【讨论】:

              【解决方案11】:

              如果您已经更新了“调试”选项,但“编辑并继续”仍然不起作用,请尝试清理并重建项目。 (在 VS 2022 中为我工作)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2019-05-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-12-02
                相关资源
                最近更新 更多