我想要一个msbuild任务来编译视图,这样我就可以看到是否有编译时错误在好…编译时间。什么好主意吗?


当前回答

这里给出的答案适用于某些MVC版本,但不适用于其他版本。

简单的解决方案适用于MVC1,但在升级到MVC2时,视图不再被编译。这是由于网站项目文件中的一个错误。请看这篇黑客文章。

请看这个:http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx

其他回答

此外,如果你使用Resharper,你可以激活Solution Wide Analysis,它将检测你在aspx文件中可能存在的任何编译器错误。这就是我们所做的……

运行代码分析

热键:Alt+F11

帮助我捕捉Razor错误。

你可以使用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集成:

<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>

ASP的下一个版本。NET MVC(一月左右可用)应该有编译视图的MSBuild任务,所以您可能想要等待。

看到公告

这里给出的答案适用于某些MVC版本,但不适用于其他版本。

简单的解决方案适用于MVC1,但在升级到MVC2时,视图不再被编译。这是由于网站项目文件中的一个错误。请看这篇黑客文章。

请看这个:http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx