1

我想发布预编译的视图。我看过一些关于指定的问题

在 csproj 中更改以下内容

<MvcBuildViews>true</MvcBuildViews>.

并修改 web.config(因为我使用的是 entityframework)

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

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

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

干杯蒂姆

4

2 回答 2

4

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

不。

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

不,cshtml您发货时必须有文件。

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

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

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

于 2012-07-02T07:21:22.497 回答
2

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

于 2013-02-12T09:24:52.743 回答