【问题标题】:Hot reload in Visual Sstudio 2022 Current not working for existing Blazor applicationVisual Studio 2022 Current 中的热重载不适用于现有的 Blazor 应用程序
【发布时间】:2021-12-25 05:26:24
【问题描述】:

在多次迭代使用 VS 2022 预览版后,我将其删除并在 VS 2022 Current 可用时安装。

现有的 Blazor 托管应用程序不会在文件保存或按下热重载按钮时热重载。它在预览版本中重新加载“很好”。我是否在调试或不调试的情况下运行它都没有关系。

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

我在 *.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。
  • 您能否指定应用程序的 Blazor 类型(服务器/wsam)?
  • 我写托管。它由 WASM 托管。问题是当我从 VS Hot Reload 创建新应用程序时。我什至注意到,一旦应用程序启动,VS 将输出窗口更改为从 Hot Reload 拍摄输出。在现有应用程序输出窗口停留在调试的情况下。我让我相信项目或解决方案或 launchSettings.json 文件中一定有某些东西,尽管我无法识别它。
  • 它不起作用。我已经在最新的 6.0.100 、Blazor wasm 和最新更新的 VS2022 上测试了几个小时。

标签: blazor blazor-webassembly .net-6.0 visual-studio-2022 hosted-blazor-webassembly


【解决方案1】:

对于您的问题,目前 Blazor WebAssembly 仅在不调试时支持热重载。这有点记录在这里:https://docs.microsoft.com/en-us/aspnet/core/test/hot-reload?view=aspnetcore-6.0

在 Visual Studio 2022 GA (17.0) 中,仅在没有调试器的情况下运行时才支持热重载。

我在尝试诊断为什么我自己现有的 Blazor WebAssembly ASP.Net Core 托管应用程序不会热重新加载时找到了您的 Q,经过 4-5 小时尝试各种事情后,我终于发现有一个项目参考一个仍然以 .NET 5 为目标的类库。在我的情况下,不再需要此引用,删除它修复了我的问题,并且我的 Hot Reload 输出再次显示。

(Web assembly): Hot reload session started

根据我的测试,如果任何引用的 .NET 6 项目又引用了一个 .NET 5 项目,这也会带来这种依赖关系,需要删除或升级。

【讨论】:

  • 我正在测试一个纯 .net 6.0.100 Blazor wasm 项目(来自模板)并且热重载无法在带有 CRTL F5 的 Blazor wasm 上运行 - 它永远不会工作。它从来没有。使用 VS Code 和 VS 2022 测试。
  • 我也有同样的问题。 Blazor WASM 模板项目不会通过常规 F5 调试进行热重载。必须使用 CTRL-F5
猜你喜欢
  • 2022-01-02
  • 2021-12-23
  • 1970-01-01
  • 2021-12-23
  • 2021-12-30
  • 2022-10-07
  • 2022-01-04
  • 2022-08-09
  • 2021-12-15
相关资源
最近更新 更多