AspNet Core 3.0 和 3.1:为 Razor Pages 启用运行时编译
AspNet Core 3.0 and 3.1 : Enable runtime compilation for Razor Pages
自 ASP.Net 核心版本 3.0 及更高版本:
A) 编辑 Razor 视图 (.cshtml) 文件,而 运行 应用程序在重新启动之前不会应用更改。
B) 编辑并继续似乎不起作用。
IDE 和版本:
微软 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
追踪
请注意,如 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
,但项目属性“调试”选项卡已将其删除(因此不起作用),直到我在那里添加变量(现在效果很好)。
Please use NuGet package
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation Version 3.1.7
that is compatible with ASP.Net Core 3.1 and apply following line of code in Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
我正在开发一个 asp.net 核心 3.1 项目,该项目在某种程度上是模块化的,每个模块都有自己的控制器和视图。位于解决方案根文件夹中的文件夹中的模块。在这种情况下,仅添加 AddRazorRuntimeCompilation
方法对我没有帮助,我必须配置 FileProviders
。只是想注意对我来说正确的配置是添加每个模块文件夹路径,实际上是包含 .csproj
文件的文件夹,到 FileProviders
对于像我这样的人来说浪费了很多时间来配置。
自 ASP.Net 核心版本 3.0 及更高版本:
A) 编辑 Razor 视图 (.cshtml) 文件,而 运行 应用程序在重新启动之前不会应用更改。
B) 编辑并继续似乎不起作用。
IDE 和版本: 微软 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
追踪请注意,如 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
,但项目属性“调试”选项卡已将其删除(因此不起作用),直到我在那里添加变量(现在效果很好)。
Please use NuGet package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation Version 3.1.7 that is compatible with ASP.Net Core 3.1 and apply following line of code in Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
我正在开发一个 asp.net 核心 3.1 项目,该项目在某种程度上是模块化的,每个模块都有自己的控制器和视图。位于解决方案根文件夹中的文件夹中的模块。在这种情况下,仅添加 AddRazorRuntimeCompilation
方法对我没有帮助,我必须配置 FileProviders
。只是想注意对我来说正确的配置是添加每个模块文件夹路径,实际上是包含 .csproj
文件的文件夹,到 FileProviders
对于像我这样的人来说浪费了很多时间来配置。