无法在 Visual Studio 2022 上热重加载

bob*_*son 58 c# hot-reload visual-studio-2022

我将我的 Web 应用程序从 Visual Studio 2019 移至 2022(预览版 7),但我无法热重载,即使是很小的更改(例如更改if(a=b)为)if(a!=b)并且需要停止调试器,而且我不确定“COMPLUS_ForceENC”环境变量是什么,无法找不到任何关于它的东西。

当我创建新的 Web 应用程序时,热重载在 C# 和 cshtml 上运行得很好。

这是当我对原始应用程序进行任何更改时显示的错误:

错误 ENC2004:项目中所做的更改需要重新启动应用程序:当调试器已附加到已运行的进程时,不允许进行更改。考虑在启动进程之前设置“COMPLUS_ForceENC”环境变量。

小智 44

我将无法正常运行的热重载归咎于 VS,但就我而言,这是由于尝试同时进行调试( F5 )和热重载而引起的。热重载图标在此输入图像描述对于 Blazor 应用程序根本不起作用。

解决方案非常简单。该应用程序需要 在不调试的情况下启动(Ctrl+F5)在此输入图像描述

之后热重载就可以正常工作了。

  • MS 认为这怎么站得住脚?几乎我想要热重载的唯一原因是在修复了我在调试时发现的问题之后?如果不能调试和热重载,这有什么用? (32认同)
  • 的确。我实际上正在构建一个托管在 ASP.NET Core 中的 Blazor Wasm,即使使用 CTRL-F5,热重新加载也根本不起作用。Microsoft Visual Studio Community 2022(64 位)版本 17.0.5 (5认同)

Evi*_*lDr 29

聚会迟到了,但今天这开始让我发疯,因为每次我进入下一个语句时,调试器都会抛出这个问题。

对我来说解决方案是

  1. 按工具栏中的“热重载”图标,然后从图标的上下文菜单中选择“设置”(或通过“工具”>“设置”>“调试”进行访问)
  2. 禁用“调试时启用热重载和编辑并继续”

在此输入图像描述

遗憾的是,我在调试时无法让热重载工作,但这对我来说并不是真正的问题。

  • 我也有同样的问题。我只是通过单步执行调试器就收到了错误消息!关闭此功能解决了问题。 (3认同)
  • 直到现在,热重载在调试中都工作正常,我不知道发生了什么变化。只在不调试的情况下使用它是毫无用处的。 (3认同)
  • VS 17.4.5 现在这些选项已被选中并禁用。调试时热重载仍然不起作用 (2认同)
  • 最好的解决办法就是把那些垃圾关掉。它随机出现错误,重建没有帮助,只能重新启动Windows。差不多一年过去了,微软仍然没有修复 (2认同)

Ale*_*lex 9

首先,热重载应该适用于调试Ctrl + F5 F5调试,因此接受的答案是错误的。

在我的例子中,热重载不起作用,因为我的调试配置的命名与“调试”不同,它被命名为“LocalDebug”(但我确实正确设置了所有设置)。

MS 的 github 上有一个问题:https ://github.com/dotnet/aspnetcore/issues/43910


Hug*_* A. 7

可能是巧合,但从 17.0.1 更新到 17.0.2 后它开始工作。这很奇怪,因为在更新日志中没有提到这样的错误修复。尝试更新到最新版本。

更新 似乎我只在我的新 .NET 6 项目中得到了这个工作。在迁移到 .NET 6 的旧版本中,这种情况仍然会发生。也许在未完全迁移到 .NET 6 且仍使用旧的startup.cs 文件的项目中将无法正常工作。在调试模式下,会显示更新通知,但内容不会更改,直到浏览器刷新。如果不在调试模式下,刷新浏览器不会执行任何操作。

更新 2 发现在新的 .net 6 Asp.net 网页项目中,如果我更改 .razor 文件,热重载效果很好,但在 .cshtml 文件中,我需要刷新浏览器才能看到更改。我有这两种文件类型,因为我在同一个项目中使用 razor Pages + Blazor。

如果您尝试创建 .Net 6 Blazor 项目,我几乎可以肯定热重载会起作用。

更新 3 我现在在 Dotnet Github 中打开了一个问题。您可以在那里关注该问题。github.com/dotnet/aspnetcore/issues/38809


ens*_*tis 6

就我而言,我犯了一个愚蠢的错误,尝试热重新加载在发布配置中运行的应用程序。确保它是调试:)

在此输入图像描述


Mos*_*ini 4

VisualStudio 2022 GA 版本也不适合我:( 看起来我不是唯一的,我注意到我的热重载功能图标与 Microsoft 宣传视频中显示的图标不同,我的是火焰,而工作版本似乎有两个火焰,形成一个圆圈:(

\n

我找到了这个

\n
\n

*在 Visual Studio 2022 GA 版本中,使用 Visual Studio 调试器时对 Blazor WebAssembly 的热重载支持尚未启用\xe2\x80\x99。\n如果在不使用调试器的情况下通过 Visual\nStudio 启动应用程序,则仍可以获得热重载,并且我们正在努力在下一个 Visual Studio 更新中\n解决此问题。

\n
\n

如果我在没有附加调试器的情况下启动程序,我会进行热重载,或者我可以在没有热重载的情况下使用调试器运行应用程序,这是上面链接的文章所期望的,但启动事件非常具有误导性,因为他们从未提及这一点,也没有显示哪个在演示过程中按下按钮启动 blazor webasm 并进行热重载工作...无论如何,他们没有显示调试器和热重载一起为 blazor webasm 工作,所以看起来这一切都在我们的脑海中:( .. .我们需要等待

\n