自 ASP.Net Core 版本 3.0 及更高版本以来:
A( 在运行应用程序时编辑 Razor 视图 (.cshtml( 文件在重新启动之前不会应用更改。
B(看起来编辑并继续不起作用。
IDE和版本:Microsoft Visual Studio 2019
对于此问题,我建议您尝试安装软件包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
,然后在Startup.cs
中配置AddRazorRuntimeCompilation
,例如
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
对于此问题,可以通过对 Razor 视图和 Razor 页面的运行时编译的重大更改来跟踪 #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 发布的"ASP.NET Core 中的 Razor 文件编译"中所述,如果您只想快速开发此功能,您可以启用此功能仅用于开发而不是生产
,无需添加.AddRazorRuntimeCompilation()
添加到 Startup.cs,然后将这些环境变量添加到您的launchSettings.json
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
"ASPNETCORE_ENVIRONMENT" = "Development"
仅适用于我们的集成开发环境(通过 DevOps 部署的开发应用服务器(和使用
"ASPNETCORE_ENVIRONMENT" = "Local"
用于单个开发人员的本地开发(在随附的appsettings.Local.json
配置文件中(。
我很高兴地报告,"ASPNETCORE_ENVIRONMENT"
并不严格需要设置为"Development"
,并且运行时编译适用于"Local"
(大概是您使用的用于开发环境的任何名称(。
但我发现的一件事是,尽管我ASPNETCORE_HOSTINGSTARTUPASSEMBLIES
添加到launchSettings.json
,但它被项目属性调试选项卡删除(因此不起作用(,直到我在那里添加变量(现在它工作得很好(。
我正在做一个 asp.net 核心3.1项目,该项目在某种程度上是模块化的,每个模块都有自己的控制器和视图。位于解决方案根文件夹的文件夹中的模块。在这种情况下,仅添加AddRazorRuntimeCompilation
方法对我没有帮助,我必须配置FileProviders
。只是想注意对我来说正确的配置是添加每个模块文件夹路径,实际上是包含.csproj
文件的文件夹,以FileProviders
像我这样浪费大量时间来配置的人。