Joh*_*ley 545 asp.net msbuild asp.net-mvc
我想要一个msbuild任务来编译视图,这样我就可以看到编译时是否存在编译错误...编译时.有任何想法吗?
Jar*_*ttV 551
来自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>
Run Code Online (Sandbox Code Playgroud)
注意 启用此功能会增加构建时间的开销.
您可以通过执行以下步骤来更新使用以前版本的MVC创建的项目,以包括视图的构建时验证:
<PropertyGroup>元素:
<MvcBuildViews>true</MvcBuildViews><Target Name="AfterBuild">元素并对其进行修改以匹配以下内容:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
Mir*_*rko 148
我坦率地推荐RazorGenerator nuget包.这样,您的视图.designer.cs在保存时会生成一个文件,并且除了为您的视图获取编译时错误之外,它们还会预编译到程序集中(=更快的预热),Resharper也会提供一些额外的帮助.
要使用此包括RazorGenerator NuGet包在你的ASP.NET MVC项目,并安装了" 剃刀发电机项下在"扩展工具→扩展和更新.
我们使用这个,并且使用这种方法的每次编译的开销要少得多.除此之外,我可能会推荐RedGate的.NET Demon,它可以进一步减少编译时的影响.
希望这可以帮助.
max*_*xnk 50
您可以使用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
Run Code Online (Sandbox Code Playgroud)
其中" / 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:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
bh2*_*213 26
此外,如果您使用Resharper,您可以激活Solution Wide Analysis,它将检测您在aspx文件中可能存在的任何编译器错误.这就是我们做的......
小智 7
构建 > 运行代码分析
热键:Alt+F11
帮助我发现 Razor 错误。
这里给出的答案适用于某些MVC版本,但不适用于其他版本.
这个简单的解决方案适用于MVC1,但在升级到MVC2时,视图不再受到影响.这是由于网站项目文件中的错误.看到这篇Haacked文章.
见:http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
| 归档时间: |
|
| 查看次数: |
104228 次 |
| 最近记录: |