我想要一个msbuild任务来编译视图,这样我就可以看到编译时是否存在编译错误...编译时.有任何想法吗?
来自RC1的自述文字doc(未被谷歌索引)
ASP.NET编译器后构建步骤
目前,直到运行时才检测到视图文件中的错误.为了让您在编译时检测到这些错误,ASP.NET MVC项目现在包含一个MvcBuildViews属性,默认情况下禁用该属性.要启用此属性,请打开项目文件并将MvcBuildViews属性设置为true,如以下示例所示:
true
注意 启用此功能会增加构建时间的开销.
您可以通过执行以下步骤来更新使用以前版本的MVC创建的项目,以包括视图的构建时验证:
在文本编辑器中打开项目文件.
在最顶层的元素下添加以下
元素:
在项目文件的末尾,取消注释
元素并对其进行修改以匹配以下内容:
我坦率地推荐RazorGenerator nuget包.这样,您的视图.designer.cs
在保存时会生成一个文件,并且除了为您的视图获取编译时错误之外,它们还会预编译到程序集中(=更快的预热),Resharper也会提供一些额外的帮助.
要使用此包括RazorGenerator NuGet包在你的ASP.NET MVC项目,并安装了" 剃刀发电机项下在"扩展工具→扩展和更新.
我们使用这个,并且使用这种方法的每次编译的开销要少得多.除此之外,我可能会推荐RedGate的.NET Demon,它可以进一步减少编译时的影响.
希望这可以帮助.
您可以使用aspnet_compiler:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site
其中" / Virtual/Application/Path/Or/Path/In/IIS/Metabase "是这样的:" / MyApp "或" / lm/w3svc2/1/root / "
MSDN上还有一个AspNetCompiler任务,展示了如何将aspnet_compiler与MSBuild集成:
此外,如果您使用Resharper,您可以激活Solution Wide Analysis,它将检测您在aspx文件中可能存在的任何编译器错误.这就是我们做的......
ASP.NET MVC的下一个版本(1月左右可用)应具有编译视图的MSBuild任务,因此您可能需要等待.
见公告
这里给出的答案适用于某些MVC版本,但不适用于其他版本.
这个简单的解决方案适用于MVC1,但在升级到MVC2时,视图不再受到影响.这是由于网站项目文件中的错误.看到这篇Haacked文章.
见:http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx