我想要一个msbuild任务来编译视图,这样我就可以看到是否有编译时错误在好…编译时间。什么好主意吗?


当前回答

此外,如果你使用Resharper,你可以激活Solution Wide Analysis,它将检测你在aspx文件中可能存在的任何编译器错误。这就是我们所做的……

其他回答

运行代码分析

热键:Alt+F11

帮助我捕捉Razor错误。

从RC1的自述词doc(未被谷歌索引)

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 > < / MvcBuildViews > 在项目文件的末尾,取消<Target Name="AfterBuild">元素的注释,并修改它以匹配以下内容:

<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>

坦率地说,我会推荐RazorGenerator的金块包。这样,当您保存视图时,视图就会生成一个.designer.cs文件,除了为视图获取编译时错误外,它们还会预编译到程序集(=更快的预热),Resharper也提供了一些额外的帮助。

要使用这包括RazorGenerator nuget包在你的ASP。NET MVC项目,并在工具→扩展和更新项下安装“Razor Generator”扩展。

我们使用这种方法,每次编译的开销要少得多。在此基础上,我可能会推荐RedGate的. net Demon,它进一步大大减少了编译时间的影响。

此外,如果你使用Resharper,你可以激活Solution Wide Analysis,它将检测你在aspx文件中可能存在的任何编译器错误。这就是我们所做的……

ASP的下一个版本。NET MVC(一月左右可用)应该有编译视图的MSBuild任务,所以您可能想要等待。

看到公告