".NET 6 Blazor WebAssembly 热重载无法工作"

10

我正在使用Visual Studio 2022,并创建了一个新的Blazor WebAssembly应用程序并运行它。 在“文件保存时启用热重载”选项已被勾选。

如果我对Counter组件进行更改(无论是HTML还是C#代码更改)并保存文件,则会在浏览器左上方出现一个勾号标记,但两个更改都没有生效,浏览器仍然显示旧版本。 enter image description here

更改后,计数器仍然增加,即使我将其更改为减少,并且h1标题不包括2。

7个回答

10

我已经弄清楚了,只有在不使用调试时运行项目才能正常工作。

按Ctrl + F5(热重载可用),按F5(不可用)


2
Blazor WebAssembly 热重载在调试模式下尚不支持。根据此更新,他们正在“努力解决这个问题,并将在下一个 Visual Studio 更新中发布”。 - fuzzy_logic
1
目前看来,CLI 是最好的选择。请执行以下命令:dotnet watch --project .\my-wasm.csprojGitHub 问题 - The Thirsty Ape
现在在调试时支持。 - John

4

如果Visual Studio突然停止工作,请尝试重新启动它。


这对我来说经常是这样的。 - tedebus
这真的很烦人,但是没错,它起作用了。 - K. Akins

3

我可以确认,当在运行 Visual Studio 2022 和 .NET 6 时,The Thirsty Ape 建议的方法是可行的。

dotnet watch --project .\your-project-name-here.csproj

浏览器将会启动,控制台应该会显示类似以下内容:
watch : Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload. Press "Ctrl + R" to restart.

最后,在进行代码更改之后:

watch : Hot reload of changes succeeded.

无需刷新页面

3
在 Blazor 图标上(调试图标旁边)单击“文件保存时热重载”,现在应该可以工作了。

the red icon like firefox icon


1

看起来热重载只在特定的配置下工作:

  • 当我将应用程序托管在IIS Express中时,即使在调试模式下,热重载也可以正常工作。
  • 当我将应用程序托管在Docker中时,无论是否启用调试器,热重载都无法正常工作。

我已经在Visual Studio v17.2.2中测试过(虽然v17.1.2也应该足够)


1
我使用的是Visual Studio IDE 2022 v17.0.1
将Visual Studio IDE 2022更新到v17.1.2,支持Blazor热重载。

enter image description here

注意:点击Help -> Check for updates。

1

还有一件要检查的事情是,如果像我一样依赖“文件保存时热重载”,请确保它实际上是开启的。

它可以在火焰图标的菜单中找到。

我不知道怎么做的,成功关闭了它,并且甚至没有意识到有一个热重载按钮。


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