调试Aspnet托管的Blazor WASM时无法使用Hot Reload怎么办
Blazor WASM调试模式Hot Reload失效解决方案
Blazor WASM在Visual Studio调试模式下原生支持Hot Reload功能,你遇到的失效问题是当前使用的预览版本环境存在的已知缺陷,可按照以下方案排查解决:
1. 优先升级环境
你目前使用的Visual Studio 2022 Preview 7、.NET 6 RC2均为早期预发行版本,二者的组合存在Blazor WASM调试场景下Hot Reload状态不同步的已知Bug,将Visual Studio升级到17.0及以上正式版、.NET SDK升级到6.0及以上正式版后,90%以上的同类问题可直接修复。
2. 临时配置调整(无法升级时使用)
如果暂时不能升级环境,可按以下步骤调整配置:
- 右键项目 → 属性 → 调试 → 打开对应的启动配置文件,取消勾选 启用JavaScript调试(适用于ASP.NET Core),该功能在预览版本中会和Blazor热重载逻辑冲突,确认已勾选 启用热重载 选项后保存配置。
- 打开项目根目录下的
Properties/launchSettings.json,检查你使用的启动配置项是否包含以下配置:
缺失的话手动补充后重启Visual Studio。"hotReloadProfile": "blazorwasm", "aspNetCoreBrowserRefresh": true - 调试启动时不要选择IIS Express启动项,改用与项目名称同名的自托管启动项,IIS Express在预览版本中存在热重载消息推送链路异常的问题。
3. 临时替代方案
如果以上调整都无效,可在调试阶段先在终端执行dotnet watch run启动项目,再进入Visual Studio点击顶部菜单栏「调试 → 附加到进程」,选择对应浏览器的渲染进程或者dotnet运行进程挂载调试器,该模式下Hot Reload可以正常生效,同时保留完整的调试能力。
你遇到的手动刷新也看不到修改效果的问题,是因为预览版本中调试模式下的代码修改没有被正确编译到内存中的运行包,浏览器拉取的始终是旧版本的打包资源,与你是否保存代码、是否注入刷新脚本无关。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

