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

问题描述 投票:0回答:1

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

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

  1. 在运行时重建应用程序无效。首先,我得到一个警告:warning如果单击“构建”,则将重新构建解决方案,但是任何代码更改都不会反映在正在运行的Web服务器中。例如,如果我将字符串"welcome"更改为"goodbye",则在重建后重建仍显示welcome
  2. dotnet watch run。将此命令添加为在启动前配置中运行的外部工具,可以使基于保存的重新编译工作。但是,它不与内置的运行器集成。由于dotnet watch run启动其自己的Web服务器,因此Rider的run命令实际上从未运行。结果,Rider并未检测到应用程序已开始运行,而是认为dotnet watch run是开始运行[[before之前的一些启动任务。通过调试,由于这个原因,我也无法达到任何断点。
还有其他方法可以在运行时快速重建ASP.NET Core项目吗?
c# asp.net-core projects-and-solutions rider recompile
1个回答
1
投票
如果添加此程序包参考:

<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中阅读有关此内容的更多信息。

编辑:

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

    您可以添加实时重新加载中间件using this package
  1. 您可以使用dotnet-watch并在保存项目时重建并运行该项目。 See this answer如何操作。

© www.soinside.com 2019 - 2024. All rights reserved.