持续集成面向对象实践dotnet core

ASPNET预编译CSHTML文件

2019-06-27  本文已影响1人  灭蒙鸟

有一个老项目使用Aspnet MVC4开放的.每次发布后,第一次访问都特别慢, 简单研究发现第一次访问某个cshtml(View)文件,都会编译.这个导致第一次加载特别慢.
简单研究后发现在项目中增加MvcBuildViews后,会预编译号所有的Cshtml文件.
.csProj文件增加如下配置.(注意,以前的项目文件需要unload项目后,才能编辑csproj文件, 或者用第三方编辑器直接编辑.csproj文件)

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <MvcBuildViews>False</MvcBuildViews>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <MvcBuildViews>True</MvcBuildViews>
  </PropertyGroup>

以上的配置在Debug时关闭了MvcBuildViews,只在Release打开. 毕竟编译View还是要一点时间的.

注意如果EnableUpdatable是True,会导致预编译失败.

<EnableUpdatable>false</EnableUpdatable> 

后记

后来发现预编译效果一般, 老项目第一次访问慢主要是初次启动时,会缓存大量信息造成. 不过预编译还是提高了一点效率.

上一篇 下一篇

猜你喜欢

热点阅读