我想要一个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任务,所以您可能想要等待。
看到公告
推荐文章
- 什么是Kestrel (vs IIS / Express)
- 剃刀视图抛出“名称‘模型’在当前上下文中不存在”
- HTML按钮调用MVC控制器和动作方法
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- ASP。NET MVC 3 Razor:在head标签中包含JavaScript文件
- 我如何解决“HTTP错误500.19 -内部服务器错误”在IIS7.0
- 将列表序列化为JSON
- 运行计划任务的最佳方式
- Global.asax中的“解析器错误消息:无法加载类型”
- ViewModel最佳实践
- 使用Html。ActionLink调用不同控制器上的动作
- 什么时候我应该在ASP中使用异步控制器。净MVC吗?
- ASP。NET“特殊”标签
- 有可能制作一个ASP。NET MVC路由基于子域?
- 如何在cshtml模板中创建函数?