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