.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