为啥在全新安装后 Blazor Hot Reload 没有按预期工作?

Posted

技术标签:

【中文标题】为啥在全新安装后 Blazor Hot Reload 没有按预期工作?【英文标题】:Why isn't Blazor Hot Reload working as expected after a fresh install?为什么在全新安装后 Blazor Hot Reload 没有按预期工作? 【发布时间】:2021-10-22 02:44:25 【问题描述】:

我想尝试 Blazor .Net 6 中的热更新。

所以我用最新的 .Net 6 Preview 7 安装了 VS 2022 Preview。

我启动了一个全新的 Blazor WASM,没有任何更改地盯着它(在调试模式下),在浏览器中观察结果,在 html 和代码中进行了简单的更改,保存并单击热重载按钮( VS 告诉我更改已成功应用)但浏览器中没有任何更改,即使我重新加载页面也没有(我必须重新编译才能看到更改)。

我也尝试在控制台中使用dotnet watch,当我进行更改时,控制台显示watch : File changed: XXX. watch : Hot reload of changes succeeded.,但即使我重新加载页面,浏览器仍然没有更新。

如果没有底层重新编译或者 Kestrel 没有重新加载新创建的 dll(但我也尝试过 IIS Express,但没有更好的结果),它的行为...

当我在 Youtube 上观看一些关于它的视频时,它似乎无需任何其他配置即可工作,在某些博客文章中也是如此。

可能出了什么问题?

【问题讨论】:

【参考方案1】:

您可能遇到了这个错误:https://github.com/dotnet/aspnetcore/issues/35339#issuecomment-898706237。

...不幸的是,我们在 WASM 运行时的最后一刻回归,它悄悄进入了我们的 preview7 构建,表现为这个错误。这在我们的 rc.1 版本中得到了解决。您可以在 https://github.com/dotnet/installer#installers-and-binaries 获取我们的夜间构建以验证它是否已修复。

您可以点击该安装程序链接并获取 rc1 版本。您还需要具有以下内容的 NuGet.config:

<configuration>
  <packageSources>
    <add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
  </packageSources>
</configuration>

仅供参考,我遇到了同样的问题,这在大约一周前为我解决了。

【讨论】:

太棒了!!非常感谢!

以上是关于为啥在全新安装后 Blazor Hot Reload 没有按预期工作?的主要内容,如果未能解决你的问题,请参考以下文章

Blazor:运行初体验,全新的.net web的开发

为啥“InvokeAsync”在 Blazor 组件中显示为错误?

为啥 Blazor 使用 post 而不是 WebSockets?

为啥 Blazor 生命周期方法会执行两次?

Blazor + Identity:为啥会出现错误?

Blazor 脚手架注册页面为啥 .cshtml 不是 .razor 文件?