热重载不适用于升级的(.Net 5 -> .Net 6)项目

Posted

技术标签:

【中文标题】热重载不适用于升级的(.Net 5 -> .Net 6)项目【英文标题】:Hot Reload not working on upgraded (.Net 5 -> .Net 6) projects 【发布时间】:2021-11-16 19:52:24 【问题描述】:

全新安装 Windows 11(以防万一)和全新安装 Visual Studio 2022 版本(非预览版)新的 Blazor WASM 项目(默认模板)热重载工作正常。

在同一台机器上,同一版本的Visual Studio,一个项目从5升级到6(包括所有的nuget包)......没有热重载。该按钮处于活动状态,您可以单击它,它会闪烁并且看起来应该发生一些事情,但浏览器根本没有更新。

我已检查所有项目都重新定位到 .Net 6。该应用程序实际上运行良好。

我没有运行调试,因为我知道调试 + WASM + 热重载不起作用。

有没有人成功地从 .Net 5 升级到 .Net 6 并让 Hot Reload 工作?有没有我遗漏的关键步骤?

【问题讨论】:

我建议你创建一个最小的 repo @Dbl 感谢您的建议,但鉴于这是一个包含 20 多个项目的现有(大型)生产解决方案,我不确定我能否做到这一点,无论是工作量以及知识产权限制。 我和@Kevon 有同样的问题。将 WASM 项目从 .Net 5 升级到 .Net 6,检查所有程序集是否有更新。我在没有调试的情况下运行,热重载输出甚至显示:(Web 服务器):热重载会话已启动和(Web 程序集):热重载会话已启动。然而,即使 Hot Reload 按钮闪烁,它似乎与浏览器没有通信。 注意:下面的 UseResponseCompression 修复对我不起作用。 【参考方案1】:

https://github.com/dotnet/aspnetcore/issues/28293

在启动文件中,中间件 UseResponseCompression() 似乎完全中断了热重载。

这解决了它

#if !DEBUG
            app.UseResponseCompression();
#endif

【讨论】:

以上是关于热重载不适用于升级的(.Net 5 -> .Net 6)项目的主要内容,如果未能解决你的问题,请参考以下文章

webpack-dev-server 热重载不适用于 webpack4

Blazor .Net 6.0 热重载

VSCode 中的 Flutter beta 热重载适用于 Web,但不适用于 iOS 和 Android(适用于 Android Studio)

颤振热重载不起作用。需要帮助

带有 ReactJS 的 ASP.NET 6 - 使用 react-scripts 5.0.0 热重载时浏览器不刷新

最新的.NET 热重载介绍