在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>
链接地址: http://www.djcxy.com/p/8423.html