欢迎光临
个人技术文档整理

如何让asp.net core mvc发布时候不编译cshtml视图

在  NET Core MVC 开发中,默认情况下 Razor 视图文件会在应用程序编译时被编译成可执行代码,以提高应用程序的性能。不过,在某些情况下,我们可能需要在应用程序发布时不编译 Razor 视图文件。这可能有助于简化部署过程或允许用户自定义视图内容。

 

禁用 Razor 视图文件的编译

要禁用在应用程序发布时编译 Razor 视图文件,我们需要在项目文件 (.csproj) 中添加以下属性:  

<PropertyGroup>
  <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
  <RazorCompileOnBuild>false</RazorCompileOnBuild>
</PropertyGroup>

这个属性告诉 ASP.NET Core MVC 在应用程序发布时不要编译 Razor 视图文件。

配置应用程序以使用运行时编译的 Razor 视图文件

在禁用了 Razor 视图文件的编译之后,我们需要告诉应用程序在运行时如何编译这些视图文件。我们可以使用运行时编译的 Razor 视图来代替预编译的 Razor 视图文件。

要配置应用程序以使用运行时编译的 Razor 视图,我们需要在 Startup.cs 文件的 ConfigureServices 方法中调用 AddControllersWithViews().AddRazorRuntimeCompilation() 方法,如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews()
        .AddRazorRuntimeCompilation();
}

这个方法告诉 ASP.NET Core MVC 使用运行时编译的 Razor 视图。现在,当应用程序启动时,Razor 视图文件将被动态编译,并在运行时使用。

注意事项

在禁用 Razor 视图文件的编译之后,我们需要注意以下几个问题:

  1. 禁用 Razor 视图文件的编译可能会影响应用程序的性能和安全性。

  2. 运行时编译的 Razor 视图可能会影响应用程序的性能。如果你的应用程序在许多不同的视图文件中使用了大量的逻辑代码,那么这种方法可能会导致应用程序的性能下降。

  3. 在应用程序发布时禁用 Razor 视图文件的编译可能会使应用程序更容易受到安全威胁。因此,你应该在评估应用程序的安全性时考虑这个问题。

 

赞(2)