【发布时间】:2020-01-30 02:23:42
【问题描述】:
自 ASP.Net Core 3.0 及更高版本:
A) 在运行应用程序时编辑 Razor 视图 (.cshtml) 文件不会应用更改,直到重新启动。
B) 编辑和继续似乎不起作用。
IDE 和版本: 微软 Visual Studio 2019
【问题讨论】:
标签: asp.net-mvc asp.net-core visual-studio-2019
自 ASP.Net Core 3.0 及更高版本:
A) 在运行应用程序时编辑 Razor 视图 (.cshtml) 文件不会应用更改,直到重新启动。
B) 编辑和继续似乎不起作用。
IDE 和版本: 微软 Visual Studio 2019
【问题讨论】:
标签: asp.net-mvc asp.net-core visual-studio-2019
对于这个问题,我建议你尝试安装包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 然后在Startup.cs 中配置AddRazorRuntimeCompilation 像
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
对于这个问题,您可以通过Breaking changes to runtime compilation for Razor views and Razor Pages #343追踪
【讨论】:
请使用 NuGet 包 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 版本 3.1.7 与 ASP.Net Core 3.1 兼容并在 Startup.cs 中应用以下代码行
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
【讨论】:
请注意,如 Givi 发布的 "Razor file compilation in ASP.NET Core" 中所示,如果您只希望此功能用于快速开发,您可以将其仅用于开发而不是用于生产通过不添加
.AddRazorRuntimeCompilation()
到 Startup.cs,而是将这些环境变量添加到您的 launchSettings.json
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
"ASPNETCORE_ENVIRONMENT" = "Development"
只针对我们的集成开发环境(通过DevOps部署的Dev appserver)和使用
"ASPNETCORE_ENVIRONMENT" = "Local"
用于个人开发者的本地开发(在随附的 appsettings.Local.json 配置文件中)。
我很高兴地报告"ASPNETCORE_ENVIRONMENT" 并不需要严格设置为"Development",并且运行时编译适用于"Local"(大概是您用于开发环境的名称)。
但我发现的一件事是,虽然我将 ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 添加到 launchSettings.json,但它已被项目属性“调试”选项卡删除(因此无法正常工作),直到我在那里添加了变量(现在它工作得很好) .
【讨论】:
我正在开发一个 asp.net core 3.1 项目,该项目以某种方式模块化,每个模块都有自己的控制器和视图。位于解决方案根文件夹中的文件夹中的模块。在这种情况下,仅添加AddRazorRuntimeCompilation 方法对我没有帮助,我必须配置FileProviders。只是想注意对我来说正确的配置是将每个模块文件夹路径,实际上是其中包含.csproj 文件的文件夹,添加到FileProviders,对于像我这样浪费大量时间来配置的人。
【讨论】: