Visual Studio 2022 中的热重载在现有的 Blazor 应用程序中无法正常工作。

7

在使用了几个VS 2022预览版之后,我将其卸载并安装了可用的VS 2022 Current版本。

现有的Blazor托管应用程序无法在保存文件或按下Hot Reload按钮时进行热重载。在预览版本中,它可以“很好地”重新加载。无论我是带调试运行还是不带调试运行都没用。

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

我没有在*.csproj或launchSettings.json文件中看到任何重要的区别。它们都针对net6.0。我还删除了.vs目录并清理了解决方案。

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

是什么阻止Visual Studio对现有应用程序进行热重载?

更新

切换为单个Program.cs和WebApplication构建器确实有所帮助。现在,热重载可以在不带调试的情况下工作。带调试运行时,VS说它已应用更改,但在屏幕上没有应用更改。

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


我昨天安装了Visual Studio 2022和.NET 6。热重载在Blazor Server上可以工作,但在Blazor WebAssembly上对我来说无法工作。 - vernou
你能指定你的应用程序的 Blazor 类型(服务器/WSAM)吗? - vernou
我编写了一款托管应用,它是基于WASM托管的。问题在于,当我从VS创建新的应用程序时,热重载起作用。我甚至注意到,一旦应用程序启动,VS会将输出窗口从热重载切换到shot输出。对于现有的应用程序,输出窗口停留在Debug状态,这让我相信项目、解决方案或launchSettings.json文件中一定有什么东西,尽管我无法识别出来。 - Milan
它不起作用。我已经在最新的6.0.100、Blazor wasm和最新更新的VS2022上测试了几个小时。 - Greg
1个回答

4

针对您的问题,当前 Blazor WebAssembly 仅在非调试状态下支持热重载。这在此处已经有所说明:https://learn.microsoft.com/en-us/aspnet/core/test/hot-reload?view=aspnetcore-6.0

在 Visual Studio 2022 GA(17.0)中,仅在无调试器运行时支持热重载。

我在尝试诊断为什么我的 Blazor WebAssembly ASP.Net Core 托管应用程序无法进行热重载时,发现了您的问题。经过4-5个小时的尝试各种方法后,最终发现存在一个类库项目引用仍然针对 .NET 5,而该引用在我的情况下不再需要,删除它后解决了我的问题,热重载输出再次显示出来了。

(Web assembly): Hot reload session started

在我的测试中,如果任何引用了 .NET 6 项目的项目又引用了一个 .NET 5 项目,那么此依赖关系也会被合并,并且需要将其移除或升级。


我正在测试一个纯 .NET 6.0.100 Blazor wasm 项目(来自模板),但使用 CRTL F5 运行 Blazor wasm 时,热重载不起作用 - 它从未起作用过。已在 VS Code 和 VS 2022 中进行了测试。 - Greg
我有同样的问题。Blazor WASM模板项目在常规F5调试时无法热重载。必须使用CTRL-F5。 - ChiliYago

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