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