.Net Core 发布时不编译 cshtml

@zgcwkj  2024年01月29日

分类:

网站 代码 

.Net Core MVC 发布时,不编译 cshtml 文件

参考:http://zhuanlan.zhihu.com/p/465069081

为了规避运行时动态编译可能带来的性能问题,.NET Core MVC 项目在发布时默认将 cshtml 文件编译为 dll。然而,有些项目希望在运行时修改cshtml视图文件。
请按照以下步骤,在 .NET Core 中实现不对 cshtml 视图进行编译。

步骤1

安装Nuget包:
Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

步骤2

在 Program.cs 中的 AddControllersWithViews() 之后添加对 AddRazorRuntimeCompilation() 的调用:
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();

步骤3

修改项目的 csproj 文件,在 PropertyGroup 节点内增加如下两个选项:
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
<RazorCompileOnBuild>false</RazorCompileOnBuild>

完成上述三个步骤后,重新发布 .NET Core MVC 项目,即可观察到 cshtml 视图文件未被编译为 dll。



评论已关闭

  1. .net 你也有接触,涉猎的范围不小啊

    1. @lukachen

      不是接触,主要是 .NET

      1. @zgcwkj

        原来如此,是我冒昧了。。。我一直以为,你也是和我一样主要玩 PHP 的。

        1. @lukachen

          php大佬呀!我只会php皮毛😂

Top