.Net Core 5.0 Razor 预编译,动态编译,混合编译


预编译

预编译是ASP .Net Core的默认方式。在发布时,默认会将系统中的所有Razor视图进行预编译。编译好的视图DLL统一命名为 xxx.PrecompiledViews.dll 或者 xxx.Views.dll

动态编译

将项目整个配置成动态编译很简单,仅需3步:

1、在 NuGet 中添加包“Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation”

2、修改代码文件“Startup.cs”中的方法“ ConfigureServices ”,调用方法“ AddRazorRuntimeCompilation ”以支持动态编译 .cshtml 文件

services.AddRazorPages().AddRazorRuntimeCompilation();

3、修改项目文件 xxx.csproj,添加配置项 RazorCompileOnBuild 和 MvcRazorCompileOnPublish ,值都设置为 false。

<PropertyGroup>
    <RazorCompileOnBuild>false</RazorCompileOnBuild>
    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
这样在发布的时候,所有的 Razor 视图都不会被预编译了,并且所有的视图都会一同被发布。

注意:在发布的生产环境中,修改视图文件是不会立即生效的,需要重启程序(对于 IIS 宿主的运行环境需要重启站点)才会生效。

混合编译

预编译和动态编译都有各自的优点,你可以选择将它们混合起来使用。例如如果你希望在发布时只预编译部分视图,而部分视图要采用动态编译的模式,可以在项目文件上配置排除不需要预编译的视图。例如将Views目录下的全部进行预编译,而主题目录和邮件模板目录下的视图不需要预编译:

<ItemGroup>
  <MvcRazorFilesToCompile Include="Views\**\*.cshtml" Exclude="wwwroot\themes\**\*.cshtml;EmailTemplates\**\*.cshtml" />
</ItemGroup>

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:.Net Core Razor 预编译,动态编译,混合编译
下一篇:html img标签更改图片尺寸后图片变得模糊
评论列表

发表评论

评论内容
昵称:
关联文章

.Net Core 5.0 Razor 编译动态编译混合编译
.Net Core Razor 编译动态编译混合编译
【推荐】Razor文件编译 ASP.NET Core
在cshtml文件中使用编译语法
.NETCore动态解析Razor代码cshtml代码解析RazorEngine.NetCore
SqlSugar 5.0官方文档 .NET ORM
.NET Core 实现动态代理做AOP(面向切面编程)
.NET Core 利用委托实现动态流程组装
.NET Core,.NET5 固定输出目录,不要版本目录
asp.net core mvc修改cshtml试图热加载动态更新
.NET DLL反编译 JustDecompile
解决.Net Core3.0 修改cshtml代码之后必须重新生成才可以看到效果
.NET DLL反编译 .NET Reflector
ASP.NET Core官网教程,资料查找
.Net Core 5.x Api开发笔记 -- 基础日志(Log4Net)(八)
Asp.NetCore3.1开源项目升级为.Net6.0
.net Core编译出现错误:指定的任务可执行文件“sgen.exe”未能运行,文件名或扩展名太长
.NET Core中的鉴权授权正确方式(.NET5)
C#的进化——C#发展史、C#1.0-10.0语法系统性梳理、C#与JAVA的对比
动态桌面遇上 HTML5

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码