这是从 ASP.NET Core 1.1 官方发布博文中学到的一招,可以在 dontet publish 时将 Razor 视图编译为 .dll 文件。
需要在 project.json 中添加如下配置:
1)在 "dependencies" 中添加:
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design": "1.1.0-preview4-final"
2)在"tools"中添加:
"tools": {
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools": "1.1.0-preview4-final"
}
3)在"scripts"中添加:
"scripts": {
"postpublish": "dotnet razor-precompile --configuration %publish:Configuration% --framework %publish:TargetFramework% --output-path %publish:OutputPath% %publish:ProjectPath%"
}
然后在运行 dotnet publish 命令时就会编译 ASP.NET Core 项目中的 Razor 视图:
Running Razor view precompilation.
Precompiled views emitted to /data/AboutUs/bin/release/netcoreapp1.1/ubuntu.14.04-x64/publish/AboutUs.PrecompiledViews.dll.
Successfully compiled 18 Razor views in 12734ms.
MVC Razor 视图被编译成了一个 AboutUs.PrecompiledViews.dll 文件,运行站点时只需要这个 dll 文件,不需要 .cshtml 视图文件了。
- 2017年4月21日更新
ASP.NET Core 之后更新了预编译视图的使用方法,现在只需安装 NuGet 包 Microsoft.AspNetCore.Mvc.Razor.ViewCompilation,然后在 .csproj 中添加如下的配置:
<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>