Visual Studio 2022 Current 中的热重载不适用于现有的 Blazor 应用程序

Hot reload in Visual Sstudio 2022 Current not working for existing Blazor application

在多次迭代使用 VS 2022 预览版后,我删除了它并在可用时安装了 VS 2022 Current。

现有的 Blazor 托管应用程序不会在文件保存或按下热重载按钮时热重载。它在预览版本中重新加载“很好”。我 运行 调试或不调试都没关系。

使用新安装的版本创建的新应用程序执行热重载。

我没有发现 *.csproj 或 launchSettings.json 文件有任何重要区别。他们都以 net6.0 为目标。我还删除了 .vs 目录并清理了解决方案。

唯一的区别是我的项目在新的应用程序模板中使用 Program.cs 和 Startup.cs 与仅使用 Program.cs,但这并不重要。或者,是吗?

什么阻止 Visual Studio 热重新加载现有应用程序?

更新

切换到单一 Program.cs 和 WebApplication 构建器确实有所帮助。现在热重载无需调试即可工作。通过调试 VS 说它应用了更改,但它们没有应用到屏幕上。

我还是想知道为什么需要进行此更改以及如何在调试时启用热重载?

针对您的问题,目前Blazor WebAssembly只支持不调试时的热重载。这是一种记录在这里:https://docs.microsoft.com/en-us/aspnet/core/test/hot-reload?view=aspnetcore-6.0

In Visual Studio 2022 GA (17.0), Hot Reload is only supported when running without the debugger.

我在尝试诊断为什么我自己现有的 Blazor WebAssembly ASP.Net Core 托管应用程序无法热重载时发现了你的问题,在尝试了 4-5 个小时之后,我终于发现有对仍然针对 .NET 5 的 class 库的项目引用。在我的例子中,不再需要此引用,删除它解决了我的问题,我的热重载输出再次显示。

(Web assembly): Hot reload session started

根据我的测试,如果任何引用的 .NET 6 项目反过来引用 .NET 5 项目,这也会将这种依赖性带入组合中,需要删除或升级。