在 Rider 中重新编译 ASP.NET 核心应用程序而不重复重新运行它

Recompiling an ASP.NET Core Application in Rider without repeatedly rerunning it

我正在 Rider 中开发一个 ASP.NET 核心 MVC 应用程序,我经常在其中编辑代码,因此不得不反复手动停止和启动应用程序,这非常不方便。

为了解决这个问题,我尝试了各种方法:

  1. 正在重建应用程序,但 运行ning 不起作用。首先,我收到警告: 如果我单击构建,解决方案将被重建,但任何代码更改都不会反映在 运行ning Web 服务器中。例如,如果我将字符串 "welcome" 更改为 "goodbye",重建后仍然显示 welcome
  2. dotnet watch run。将此命令作为外部工具添加到预启动配置中的 运行 确实可以进行基于保存的重新编译。但是,这并没有与内置的 运行ner 集成。由于 dotnet watch run 启动了自己的网络服务器,因此 Rider 的 运行 命令实际上从未 运行s。因此,Rider 没有检测到应用程序已启动 运行ning,而是认为 dotnet watch run 是一些启动前任务,需要在 before 运行宁。通过调试,我也因此无法命中任何断点。

有没有其他方法可以在 运行 编译它的同时快速重建 ASP.NET 核心项目?

我想你想要的是 Razor 文件编译。这将在编辑视图时重建您的视图,而无需重新启动服务器。

如果添加此包引用:

<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />

并将此代码段添加到您的启动中:

public IWebHostEnvironment Env { get; set; }

public void ConfigureServices(IServiceCollection services)
{
    IMvcBuilder builder = services.AddRazorPages();

#if DEBUG
    if (Env.IsDevelopment())
    {
        builder.AddRazorRuntimeCompilation();
    }
#endif

    // code omitted for brevity
}

您现在应该已经重建了视图。您可以在 the docs.

中阅读更多相关信息

编辑:

如果您还想更新所有文件(不仅仅是视图),有几个选项:

  1. 您可以添加一个 Live Reload 中间件 using this package

  2. 您可以使用 dotnet-watch 并在保存时重建和 运行 项目。 如何做到这一点。