当我在浏览器中刷新页面时,如何在ASP.NET Core 2.2中启用自动重建?

mls*_*lst 5 .net-core asp.net-core visual-studio-2017 asp.net-core-2.2

默认情况下,此功能在ASP.NET Core 2.1中有效,但在当前最新的2.2中不起作用。

我刚刚在Visual Studio 2017(社区版)中创建了两个基本的ASP.NET Core API项目,一个项目使用2.1,另一个项目使用2.2模板。然后,我使用Ctrl + F5运行两个项目(例如,不进行调试)。当我分别访问/ api / values URL时,将获得默认的JSON。到目前为止,一切都很好。

现在,当我在2.1项目中更改ValuesController.cs 并在浏览器中单击“刷新”时,我发现加载需要一些时间,因为Web服务器检测到更改并正在重建项目,然后获得新的JSON值。但是,当我对2.2重复相同的过程并在浏览器中单击“刷新”时,我会立即获得旧值(例如,未进行任何项目构建)。

那么如何在2.2中启用此功能?

mls*_*lst 2

我找到的解决方案是删除或注释掉<AspNetCoreHostingModel>项目.csproj文件中的 XML 节点。所以它看起来像这样:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <!--<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>-->
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

现在,如果您使用 Ctrl + F5(不带调试器)运行 ASP.NET Core 应用程序,它将检测 .cs 文件中的更改,并在您发出依赖于新代码的请求时在运行时重新编译。

  • 我已在此 https://github.com/aspnet/AspNetCore/issues/9371 上提交了一个错误 (2认同)