在ASP.NET MVC中编译视图
我想要一个msbuild任务来编译视图,这样我就可以看到编译时是否有编译时错误。 有任何想法吗?
  坦率地说,我会推荐RazorGenerator nuget包。  这样,您的视图在保存时会生成一个.designer.cs文件,除了为您的视图获取编译时错误之外,它们还会预编译为程序集(=更快的预热),并且Resharper还提供了一些其他帮助。 
要使用它, 请在您的ASP.NET MVC项目中包含RazorGenerator nuget包,并在工具→扩展和更新下的项目下安装“ Razor Generator ”扩展。
我们使用这种方法,每次编译时使用这种方法的开销要少得多。 最重要的是,我可能会推荐使用RedGate的.NET Demon,它可以进一步减少编译时间的影响。
希望这可以帮助。
从RC1的自述文档文档(未由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:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:PathToYourWebProject -f -errorstack C:WhereToPutCompiledSite
其中“ / 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:inetpubwwwrootMyWebSite"
            TargetPath="c:precompiledwebMyWebSite"
            Force="true"
            Debug="true"
        />
    </Target>
</Project>
