Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Net MVC MvcBuildViews大幅增加编译时间_Asp.net_Asp.net Mvc - Fatal编程技术网

Asp.net Net MVC MvcBuildViews大幅增加编译时间

Asp.net Net MVC MvcBuildViews大幅增加编译时间,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我们有一个项目,希望构建视图,以便在视图“.cshtml文件中出现任何错误时生成编译时错误 尽管如此,编译时间还是急剧增加: MvcBuildViews=true需要62秒 MvcBuildViews=false需要9秒 这是可以接受的吗?因为这种增长是非常剧烈的,我们不能忍受等待这样的编译时间。我们有什么办法可以改进这种汇编 到目前为止,该项目由大约130个视图和部分视图(.cshtml文件)组成。这算是大/中/小问题吗?我们也遇到了同样的问题。我们开始编译视图,以便发现在集成测试和用户体

我们有一个项目,希望构建视图,以便在视图“.cshtml文件中出现任何错误时生成编译时错误

尽管如此,编译时间还是急剧增加:

  • MvcBuildViews=true
    需要62秒
  • MvcBuildViews=false
    需要9秒
这是可以接受的吗?因为这种增长是非常剧烈的,我们不能忍受等待这样的编译时间。我们有什么办法可以改进这种汇编


到目前为止,该项目由大约130个视图和部分视图(.cshtml文件)组成。这算是大/中/小问题吗?

我们也遇到了同样的问题。我们开始编译视图,以便发现在集成测试和用户体验测试中可能出现的明显问题。更糟糕的是不知何故潜入生产的bug

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

我们最终在用户体验测试之前开始构建

现在我们正朝着预编译的方向前进。目前我们团队中只有一个人采用了它,显然预编译明显优于构建(增量vs总体)。设置基本上是一个nuget获取

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


我认为能够编译视图本身就是一件好事,但我也不能等那么久。 因此,我更喜欢在发布版的
ProperyGroup
中添加
MvcBuildViews=true
,这样您就只能在发布时和部署前编译视图

属性组应如下所示:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 

所以把你的

<MvcBuildViews>true</MvcBuildViews>
true

在这个释放块里面。这样,您仍然可以编译视图一次,而不是每次尝试调试…

在csproj中为调试配置将MvcBuildViews设置为false

<MvcBuildViews Condition=" '$(Configuration)' != 'Debug' ">true</MvcBuildViews>
然后添加一个快捷方式:进入工具/选项/环境/键盘 找到命令“Tools.ExternalCommandX”,其中X是您刚刚添加外部命令的位置。指定一个键(例如:Ctrl-shift-1)

现在解释如下:
我们也有同样的问题。大多数时候我们都不想编译视图,但我们喜欢在签入代码之前编译视图,这样我们就可以在50次中编译视图1次。为了实现这一点,我使用mvcbuildviews参数向msbuild添加了一个外部工具命令。唯一的缺点是错误没有列在visual studio的“错误”窗口中,您必须查看“输出”窗口并双击错误(如果有)。

谢谢,我们将检查此错误!:)试试StackOverflow的替代方案:我们也使用了这种方法。正统剧。
Title: Compile with MVC views
Command: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
Arguments: $(SolutionDir)$(SolutionFileName) /p:MvcBuildViews=true
Initial directory: $(SolutionDir) 
Use Output window:  checked