ASP.Net MVC MvcBuildViews大大增加了编译时间

Mar*_*sar 9 asp.net asp.net-mvc

我们有一个项目,如果Views的.cshtml文件中有任何错误,我们希望构建视图以生成编译时错误.

不过,编译时间大幅增加:

  • MvcBuildViews = true 需要62秒
  • MvcBuildViews = false 需要9秒

这是可以接受的吗?因为增加是非常激烈的,我们不能忍受等待这样的编译时间.我们可以用任何方式改进这样的编译吗?

到目前为止,该项目包含130个视图和部分视图(.cshtml文件).这被认为是大/中/小?

Ara*_*ram 12

我认为有可能编译视图本身是一件好事,但我也不能等待那么久.所以我更喜欢MvcBuildViews = trueProperyGroupRelease中添加它,以便您只在Release版本时和部署之前编译视图

属性组应如下所示:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
Run Code Online (Sandbox Code Playgroud)

所以把你的

<MvcBuildViews>true</MvcBuildViews>
Run Code Online (Sandbox Code Playgroud)

在此Release块中.这样你仍然可以编译你的视图一次而不是每次尝试调试时...


Dav*_*ich 2

我们也遇到了同样的问题。我们开始编译视图,以便发现集成测试用户体验测试期间出现的明显问题。更糟糕的是错误不知何故潜入了生产环境。

但是,正如您所注意到的,我们的构建时间变得难以忍受。和您一样,我们的开发人员进行了无数次构建,这成为了我们这一天的主要部分。我们开玩笑说午饭后进行测试,这样我们就可以在外出时完成构建。

我们最终转向在用户体验测试之前进行构建。

现在我们正在转向预编译。目前我们团队中只有一个人采用了它,并且显然预编译明显优于构建(增量与总体)。设置基本上就是一个 nuget fetch。

这些文章应该是一个好的开始

http://stacktoheap.com/blog/2013/01/19/precompiling-razor-views-in-asp-dot-net-mvc-3/

http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html