使用MvcBuildViews预编译视图

时间:2012-07-02 07:09:41

标签: asp.net-mvc asp.net-mvc-3

我想发送预编译的视图。我已经看到了一些关于指定

的问题

更改csproj中的以下内容

<MvcBuildViews>true</MvcBuildViews>.

       

并修改web.config(因为我正在使用entityframework)

<compilation debug="true" targetFramework="4.0">
      <buildProviders>
        <remove extension=".edmx"/>
      </buildProviders>
 </compilation>

现在需要更长的时间来编译我期待但是我不确定它是否正常工作

  1. 我可以假设我说得对,如果配置正确,它实际上应该将视图构建到二进制文件而不是仅仅进行预编译验证吗?
  2. 如果为true,那么我应该阻止web部署运送cshtmls吗?它们在现场的存在会导致重新编译吗?
  3. 如果是这样,这会导致部署的mvc应用程序的启动时间更快?因为他们不需要编译视图吗?
  4. 我应该在csproj中添加false吗?我看到一篇文章建议我应该将它从真实变为假,但它并没有出现在我的csproj中。
  5. 干杯 添

2 个答案:

答案 0 :(得分:4)

  

我可以假设我说得对,如果配置正确,它实际上应该将视图构建到二进制文件而不是仅仅做   预编译验证?

没有

  

如果是,那么我应该阻止web部署发送   cshtmls?它们在现场的存在会导致重新编译吗?

不,您发货时必须存在cshtml个文件。

  

如果是这样,这将导致部署的mvc更快的启动时间   应用程序?因为他们不需要编译视图?

不,在发布模式下,Razor会进行优化,它会自动缓存视图的位置,一旦解析它们,它就不会在后续请求中重新分析。

因此,故事的寓意是您可以在发布模式下启用MvcBuildViews选项,以便构建服务器可以在项目的持续集成构建期间检测到任何潜在错误。在调试模式下,我将其禁用,因为它会减慢构建速度。

答案 1 :(得分:2)

RazorGenerator似乎是我原来问题的唯一选择,即将编译后的视图作为二进制文件发送。