我找到了几个使用Post-Build事件的解决方案。
有没有办法发布 ASP.NET MVC网站带有编译视图(以防止第一次用户查看延迟)但不编译他们在开发环境中(更快地编译网站)?
谢谢!
P.S。理想情况下,在Visual Studio 2010中配置“单击发布”功能
修改
据我了解<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
与
<MvcBuildViews>true</MvcBuildViews>
<EnableUpdateable>false</EnableUpdateable>
但是对于早期版本
我的.csproj看起来像
...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MvcBuildViews>true</MvcBuildViews>
<EnableUpdateable>false</EnableUpdateable>
...
和视图预编译很好但我无法像Asp .net应用程序那样获得单个库进行部署。这就是为什么第一次加载页面延迟仍然存在...
请帮忙
答案 0 :(得分:2)
只有在发布模式下编译时,才能配置构建后事件以编译视图,这样在开发过程中(当您可能在调试模式下编译时)不会减慢速度。
例如,.csproj中的以下节点仅在以发布模式编译项目时编译视图。
<Target Name="AfterBuild" Condition="'$(Configuration)'=='Release'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
答案 1 :(得分:0)
或者您可以将MvcBuildViews设置为true,但仅针对某些配置执行此操作:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true' And '$(Configuration)'!='Debug'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
注意我已将And '$(Configuration)'!='Debug'"
添加到条件中。