Visual Studio 中通过 Kestrel(不是 IIS Express)托管的 Blazor 服务器是否支持在 Razor 文件更改时自动重建?

Can Blazor Server in Visual Studio hosted via Kestrel (not IIS Express) support automatic rebuild on Razor file change?

我正在使用 VS 2019、.NET 5 和 Blazor 服务器项目。

在 VS 2019 中开发时,我总是比 IIS Express 更喜欢普通的 Kestrel。感觉更快,我得到了专用控制台 window 来显示日志等,而不是依赖 VS 的输出 window .所以每次我开始一个新项目时,我通常会通过 launchsettings.json.

从默认的 IIS Express 切换到 Kestrel

但是,我注意到使用 IIS Express,Blazor 服务器项目将在保存更改的 Razor 文件时自动重新构建。切换到 Kestrel 主机后,我没有看到相同的行为。

有没有办法让它像 IIS Express 一样自动重建?

我看到了一些关于 dotnet watch 的信息,但我通常只是通过 Ctrl + F5 等快速启动,每次启动项目都必须使用命令行会很痛苦。

您可以使用 dotnet watch - 并让 Ctrl-F5 工作,方法是在您的项目中向 launchsettings.json 添加一个新的配置文件。您可以 select 在工具栏中“观看”作为配置文件,然后按 Ctrl+F5 启动它。

    "Watch": {
      "commandName": "Executable",
      "dotnetRunMessages": "true",
      "workingDirectory": "$(ProjectDir)",
      "executablePath": "dotnet.exe",
      "commandLineArgs": "watch",
      "applicationUrl": "https://localhost:5000;http://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

当您通过热重载迁移到 .NET 6 时,您可以使用这个:

    "HotReload": {
      "commandName": "Executable",
      "dotnetRunMessages": "true",
      "workingDirectory": "$(ProjectDir)",
      "executablePath": "dotnet.exe",
      "commandLineArgs": "watch",
      "hotReloadProfile": "aspnetcore",
      "applicationUrl": "https://localhost:5000;http://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

找到设置:

VS 选项 -> 项目和解决方案 -> ASP.NET 核心 -> 自动构建和刷新选项

更改为“保存更改后自动构建并刷新浏览器”。