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

Arn*_*rah 2 c# projects-and-solutions recompile asp.net-core rider

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

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

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

有没有其他方法可以在运行 ASP.NET Core 项目时快速重建它?

mar*_*icz 5

我认为您所追求的是 Razor 文件编译。这将在编辑视图时重建您的视图,而无需重新启动服务器。

如果添加此包引用:

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

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

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
}
Run Code Online (Sandbox Code Playgroud)

您现在应该重建视图。您可以在docs 中阅读有关此内容的更多信息。

编辑:

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

  1. 你可以使用这个包添加一个 Live Reload 中间件。

  2. 保存后,您可以使用dotnet-watch和 来重建和运行项目。请参阅有关如何执行此操作的答案