Answers:
坦率地说,我建议使用RazorGenerator nuget软件包。这样一来,您的视图就会.designer.cs
在保存时生成一个文件,并且除了获得视图的编译时错误外,它们还被预先编译到了程序集中(=更快的预热),并且Resharper也提供了一些其他帮助。
要使用此功能,请在ASP.NET MVC项目中包括RazorGenerator nuget包,并在“ 工具”→“扩展和更新 ”下的项目下安装“ Razor Generator ”扩展。
我们使用它,使用这种方法的每次编译开销要少得多。最重要的是,我可能会推荐RedGate的.NET Demon,它可以进一步大大减少编译时间的影响。
希望这可以帮助。
从RC1的自述单词doc(未由Google索引)
ASP.NET编译器的生成后步骤
当前,视图文件内的错误直到运行时才被检测到。为了让您在编译时检测到这些错误,ASP.NET MVC项目现在包括一个MvcBuildViews属性,该属性默认情况下处于禁用状态。要启用此属性,请打开项目文件并将MvcBuildViews属性设置为true,如以下示例所示:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
注意 启用此功能会增加一些构建时间。
您可以通过执行以下步骤来更新使用早期版本的MVC创建的项目,以包括视图的构建时验证:
<PropertyGroup>
元素:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
元素,并对其进行修改以匹配以下内容:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
您可以为此使用aspnet_compiler:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site
其中“ / Virtual / Application / Path / Or / Path / In / IIS / Metabase ”是这样的:“ / MyApp ”或“ / lm / w3svc2 / 1 / root / ”
MSDN上还有一个AspNetCompiler任务,展示了如何将aspnet_compiler与MSBuild集成:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/MyWebSite"
PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
/>
</Target>
</Project>
另外,如果使用Resharper,则可以激活“解决方案范围分析”,它会检测aspx文件中可能存在的所有编译器错误。那就是我们要做的...
此处给出的答案适用于某些MVC版本,但不适用于其他版本。
这个简单的解决方案适用于MVC1,但是在升级到MVC2时,不再遵循这些视图。这是由于网站项目文件中的错误。请参阅这篇Haacked文章。
看到这个:http : //haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
构建>运行代码分析
热键:Alt+F11
帮助我捕获Razor错误。
使用Visual Studio的Productivity Power Tools(免费)扩展会有所帮助。具体来说,Solution Error Visualizer
功能。使用它,可以在解决方案资源管理器中(在发现错误的源文件中)以可视方式标记编译错误。但是由于某种原因,此功能无法与代码中其他任何地方的其他错误一起使用。
使用MVC视图时,任何编译时错误仍将在其各自的.cs文件中用红色下划线标出,但表示这些错误不会在解决方案资源管理器中向上传播(决不会,甚至不会在包含的源文件中)。
感谢您BlueClouds
纠正我以前的说法。
我刚刚在扩展程序的github项目上将此报告为问题。