我想要一个msbuild任务来编译视图,这样我就可以看到是否有编译时错误在好…编译时间。什么好主意吗?
当前回答
运行代码分析
热键:Alt+F11
帮助我捕捉Razor错误。
其他回答
使用Visual Studio的Productivity Power Tools(免费)扩展会有所帮助。具体来说,就是Solution Error Visualizer特性。使用它,在解决方案资源管理器中(在发现错误的源文件中)可视地标记编译错误。但是,由于某种原因,该特性不能像处理代码中的其他错误一样正常工作。
对于MVC视图,任何编译时错误仍将在各自的.cs文件中以红色下划线显示,但在解决方案资源管理器中不会向上传播这些错误(绝不会,甚至在包含这些错误的源文件中也不会)。
感谢BlueClouds纠正我之前的声明。
我刚刚报告了这个扩展的github项目的一个问题。
从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>
这里给出的答案适用于某些MVC版本,但不适用于其他版本。
简单的解决方案适用于MVC1,但在升级到MVC2时,视图不再被编译。这是由于网站项目文件中的一个错误。请看这篇黑客文章。
请看这个:http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
运行代码分析
热键:Alt+F11
帮助我捕捉Razor错误。
此外,如果你使用Resharper,你可以激活Solution Wide Analysis,它将检测你在aspx文件中可能存在的任何编译器错误。这就是我们所做的……
推荐文章
- 什么是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模板中创建函数?