当你创建了一个 ASP.NET MVC2 的网站应用程序的时候,如果你使用文本方式打开项目文件看一看,就会发现一个有趣的配置选项
这个选项启用延后的 aspnet_compiler 创建任务,aspnet_compiler程序负责在设计期间编译你的 aspx 页面,并且报告编译过程中的错误。通常情况下,这个程序一般用来在在修改之后,第一次加载之前编译你的站点。以提高访问的速度。在这个特殊的文件夹下可以找到这个程序:
%系统文件夹%\Microsoft.NET\Framework\v4.0.30319
由于这个选项延后了编译任务,所以,这就是你可以在页面文件存在错误的情况下调试代码程序,而不会看到错误,直到页面的时候才会出现错误的原因。
如果你将这个选项设置为 true,那么,你将发现将会花费更多的时间来编译你的网站,你的每一个 aspx 文件都将被编译成一个 dll 文件,这些文件可以在编译的临时文件夹中发现,它们应该位于这个位置:
%系统文件夹%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
但是,在 .NET 4.0 下开发的时候,我发现实际位于这个位置
c:\Users\用户名\AppData\Local\Temp\Temporary ASP.NET Files
继续往下看这个文件,你会看到下面的一段。
在你将 MvcBuildViews选项设置为真之后,这个编译任务将在你的网站的根目录执行编译任务,
第二个问题
如果在你的网站文件夹下存在多个 web.config 文件,比如说在 obj 文件夹中,如果你打包或者发布网站的时候,将会导致一个问题出现。错误信息如下所示:
It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
为了解决这个问题,你可以修改一下项目文件,在 MvcBuildViews 配置之后增加一个如下的设置。
<MvcBuildViews>false</MvcBuildViews>
<BaseIntermediateOutputPath>有权限访问的目录</BaseIntermediateOutputPath>
这将会导致 MSDeploy 生成的文件输出到你指定的位置,这样就可以解决这个问题,默认情况下并没有明确设置这个位置。
还有一个问题就是默认情况下总是使用 .NET 4.0 的 aspnet_compiler 工具,如果你希望能够使用 ASP.NET 2.0 版的 aspnet_compiler,比如说你的目标是 .NET 3.5,那么,你可以如下设置你的选项。
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler
ToolPath="C:\Windows\Microsoft.NET\Framework\v2.0.50727"
VirtualPath="temp"
PhysicalPath="$(ProjectDir)\..\Web" />
</Target>
这个 ToolPath 用来设置 aspnet_compiler 工具所在的目录。
最后一个问题,我要说的是看一看 WDP (Web Deployment Projects )
WDP 是一个 Visual Studio 的 Add-In 工具,用来执行 aspnet_compiler 和合并的工具。使用它可以自动化处理设置正确的 ToolPath 路径,并且将发布和打包的 ASP.NET MVC2 的网站应用程序输出到一个相邻的文件夹,使你在发布之后不会得到创建错误,如果需要的话,它还提供了众多的配置选项供你选择,即使直接使用它,在不需要修改项目文件的情况下,也是一个理想的创建 ASP.NET MVC2 程序的解决方案。
如果你感兴趣的话,
http://www.microsoft.com/downloads/details.aspx?FamilyID=89f2c4f5-5d3a-49b6-bcad-f776c6edfa63&displaylang=en
关于这个工具的使用,可以到这里学习:http://blogs.msdn.com/b/webdevtools/archive/2010/04/14/visual-studio-2010-web-deployment-projects-beta-avail-now.aspx
这篇文件的原文由 Joe Cartano 发表在:http://blogs.msdn.com/b/webdevtools/archive/2010/05/14/the-aspnet-compiler-build-task-in-visual-studio-2010-asp-net-mvc-2-projects.aspx
【来源:国外高防服务器 http://www.558idc.com/stgf.html 欢迎留下您的宝贵建议】