netcore 编译 html dll,ASP.NET Core Razor 视图预编译、动态编译
0x01 前言
ASP.NET Core在默認發布情況下,會啟動預編譯將試圖編譯成xx.Views.dll,也許在視圖中打算修改一處很細小的地方我們需要再重新編譯視圖進行發布。下面我將從 ASP.NET Core 3 之前版本到 ASP.NET Core 3X 之后版本的一個配置列下下方供大家參考。
0x02 預編譯
在ASP.Core中默認是為我們啟動的預編譯,默認系統會將視圖編譯進行預編譯處理,最終會將編譯好的視圖生成一個DLL xx.Views.dll.
0x03 動態編譯
動態編譯也就是當我們視圖文件發生變化時進行重新編譯和更新Razor文件
ASP.NET Core 3之前版本:
netcoreapp2.2
InProcess
false
false
通過上述代碼只能幫我們做到在開發環境中進行動態編譯,那么我們需要加上如下代碼來實現我們生產環境中動態編譯.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddRazorOptions(options =>
options.AllowRecompilingViewsOnFileChange = true);
}
條件:
MvcRazorCompileOnPublish:設置此選項false將關閉在發布過程中啟用的視圖編譯的所有功能
MvcRazorExcludeViewFilesFromPublish:啟用MvcRazorCompileOnPublish可防止發布.cshtml文件。此選項禁用此行為。注意:ASP.NET Core Mvc不支持可更新的預編譯視圖。如果發現該路徑的預編譯視圖,則將忽略對已發布的cshtml文件的任何修改。
MvcRazorExcludeRefAssembliesFromPublish:啟用MvcRazorCompileOnPublish會使目標阻止refs發布目錄。此選項禁用此行為。注意:如果您的應用程序使用了預編譯視圖和運行時編譯視圖的組合,則設置此選項很有用。
MvcRazorFilesToCompile:指定要編譯的視圖文件。默認情況下,這包括標記為內容的所有.cshtml文件。
ASP.NET Core 3.X版本:
安裝NuGet包
Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages()
.AddRazorRuntimeCompilation();
}
netcoreapp3.1
false
false
通過上述代碼我們可以在生產環境中也可以進行動態編譯,當然我們可以通過條件來限制.
基于環境和配置模式啟用運行時編譯:
根據活動的 Configuration 值,有條件地引用 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 包:
更新項目的 Startup.ConfigureServices 方法以包含對 AddRazorRuntimeCompilation 的調用。 有條件地執行 AddRazorRuntimeCompilation,使其僅當 ASPNETCORE_ENVIRONMENT 變量設置為 Development時在調試模式下運行:
public IWebHostEnvironment Env { get; set; }
public void ConfigureServices(IServiceCollection services)
{
IMvcBuilder builder = services.AddRazorPages();
#if DEBUG
if (Env.IsDevelopment())
{
builder.AddRazorRuntimeCompilation();
}
#endif
}
Reference
ASP.NET Core Razor 視圖導入 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程
原文:ASP.NET Core Razor 視圖導入 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 ASP.NET Core Razor 視圖導入 上一章節我們介紹了視圖起始頁,學習 ...
ASP.NET Core Razor 視圖起始頁 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程
原文:ASP.NET Core Razor 視圖起始頁 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 ASP.NET Core Razor 視圖起始頁 上一章節中我們介紹了布局視圖, ...
ASP.NET Core Razor 視圖組件
視圖組件簡介 在新的ASP.NET Core MVC中,視圖組件類似于局部視圖,但它們更強大.視圖組件不使用模型綁定,僅依賴于您在調用時提供的數據. 視圖組件特性: 呈現頁面響應的某一部分而不是整個響 ...
Asp.net MVC Razor視圖模版動態渲染PDF,Razor模版生成靜態Html
Asp.net MVC Razor視圖模版動態渲染PDF,Razor模版生成靜態Html 1.前言 上一篇文章我開源了輪子,Asp.net Core 3.1 Razor視圖模版動態渲染PDF,然后,很 ...
ASP.NET Core Razor 布局視圖 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程
原文:ASP.NET Core Razor 布局視圖 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 ASP.NET Core Razor 布局視圖 上一章節中我們學習了如何使用 EF ...
C#中的函數式編程:遞歸與純函數(二) 學習ASP.NET Core Razor 編程系列四——Asp.Net Core Razor列表模板頁面
C#中的函數式編程:遞歸與純函數(二) ? 在序言中,我們提到函數式編程的兩大特征:無副作用.函數是第一公民.現在,我們先來深入第一個特征:無副作用. 無副作用是通過引用透明(Referential ...
ASP.NET Core Razor 標簽助手 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程
原文:ASP.NET Core Razor 標簽助手 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 ASP.NET Core Razor 標簽助手 上一章節我們介紹了視圖導入,學習了 ...
隨機推薦
ubuntu 14.10 lts 64-bits環境下使用Android Studio
距離google發布android studio 1.0正式版已經兩個月左右了.由于一直習慣使用eclipse+ADT的模式,而且曾在windows下試用一次Android Studio預覽版,感覺卡 ...
建字段_添加數據_生成json.php
HDU-4089 Activation
http://acm.hdu.edu.cn/showproblem.php?pid=4089 Activation Time Limit: 20000/10000 MS (Java/Others)?? ...
PreTranslateMessage和TranslateMessage區別
PreTranslateMessage是消息在送給TranslateMessage函數之前被調用的,絕大多數本窗口的消息都要通過這里,比較常用,當需要在MFC之前處理某些消息時,常常要在這里添加代碼. ...
php基礎運算符語句
/* 多行注釋 *///常用數據類型//int string double/float bool//變量的定義$a = 123;$b = "123";$c = '456';//$d ...
我們是80后 golang入坑系統
現在這個系列,已經開始兩極分化了. 點贊的認為風格輕松,看著不困.反之,就有人嫌寫的羅里吧嗦,上綱上線.所以善意提醒,里面不只是技術語言,還有段子.專心看技術的,千萬別點!別怪我沒提醒!差點忘說,版權 ...
oracle 查看后臺正在執行的腳本
select username,lockwait,status,machine,program from v$session where sid in (select session_id from ...
Redux 和 React-Redux簡介
先說一下,為什么會產生Redux這樣的框架,我們在開發React應用時,會發現組件之間需要進行數據的交換和傳遞.體現在: 1.?父組件要向子組件傳遞數據 通過修改子組件的props 2.?兄弟組件之間 ...
Tomcat日志文件catalina.out文件過大問題
隨著項目的運行,Tomcat的日志文件catalina.out的大小日益增大,現在都有好幾個GB了.如果我們不做任何處理,catalina.out的文件大小將會持續增加,直到把我們的系統硬盤空間給撐爆 ...
總結
以上是生活随笔為你收集整理的netcore 编译 html dll,ASP.NET Core Razor 视图预编译、动态编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记:装饰器
- 下一篇: Python学习笔记:常用内建模块7XM