【问题标题】:Why do I need to enable razor runtime compile? Am I taking crazy pills?为什么我需要启用 razor 运行时编译?我在吃疯狂的药吗?
【发布时间】:2021-01-27 23:00:03
【问题描述】:

据我所知,我一直能够更新 cshtml 文件并立即看到更改(刷新浏览器后),而无需停止我的项目。

但是当我正在创建一个新项目时,我看到了启用此功能的新选项,我想知道它是什么,因为毕竟我一直都能做到这一点。但据我所知,它确实做到了它所说的......好像我过去无法做到这一点?

但我现在也注意到,当我对剃须刀页面进行更改时,由于 Visual Studio 重新编译项目,需要更长的时间才能看到更新。

什么...正在...正在...进行中?

【问题讨论】:

    标签: razor asp.net-core-mvc


    【解决方案1】:

    据我所知,我一直能够更新 cshtml 文件和 立即查看更改(在刷新浏览器时),而无需 停止我的项目。

    可以。在asp.net core 3.0之前,默认可以。在asp.net core 3.0之后,可以安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet包来开启运行时编译。

    1.安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。

    2.更新项目的Startup.ConfigureServices 方法以包含对AddRazorRuntimeCompilation 的调用:

    services.AddControllersWithViews().AddRazorRuntimeCompilation();
    

    参考:

    https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-5.0&tabs=visual-studio#enable-runtime-compilation-in-an-existing-project

    更新:

    从 asp.net core 3.1 开始,您可以在 创建新的 ASP.NET Core Web 应用程序对话框中选中启用 Razor 运行时编译复选框:

    【讨论】:

    • 好的,所以我已经这样做了,它可以工作,但我的问题是,现在每次我对甚至与代码无关的东西进行微小的更改时,都必须不必要地重新编译。当我测试 css 样式更改时,执行此操作所需的额外时间很快就会增加。当没有代码更改时,没有理由这样做。这是否意味着他们实际上使情况比以前更糟了?
    • 这是设计使然,如果您想知道造成这种情况的原因,我想您需要在 github 中询问,因为我们不是 vs 或 asp.net 核心设计师。
    • 谢谢。我不确定我是否只是遗漏了一些东西,因为他们会引入一个新的“功能”,这真的会破坏(在性能方面)已经存在的功能,这似乎很疯狂。
    • 我很感激,虽然这是我自己想出来的。我的问题是,我以前每次更改 cshtml 时都不必等待应用程序重新编译。现在我愿意。这是一个巨大的浪费时间。
    • 这不再起作用(2021 年 4 月)。您必须点击浏览器上的刷新按钮。热重载不起作用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2019-05-28
    相关资源
    最近更新 更多