Compile Views in ASP.NET MVC

前端 未结 8 1265
故里飘歌
故里飘歌 2020-11-22 02:54

I want an msbuild task to compile the views so I can see if there are compile time errors at well... compile time. Any ideas?

相关标签:
8条回答
  • 2020-11-22 02:54

    Also, if you use Resharper, you can active Solution Wide Analysis and it will detect any compiler errors you might have in aspx files. That is what we do...

    0 讨论(0)
  • 2020-11-22 02:56

    The answer given here works for some MVC versions but not for others.

    The simple solution worked for MVC1 but on upgrading to MVC2 the views were no longer being compliled. This was due to a bug in the website project files. See this Haacked article.

    See this: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx

    0 讨论(0)
  • 2020-11-22 02:57

    Using Visual Studio's Productivity Power Tools (free) extension helps a bit. Specifically, the Solution Error Visualizer feature. With it, compilation errors marked visually in the solution explorer (in the source file where the error was found). For some reason, however, this feature does not work as with other errors anywhere else in the code.

    With MVC views, any compile-time errors will still be underlined in red in their respective .cs files, but signaling these errors is not propagated upwards in the Solution Explorer (in no way, even not in the containing source file).

    Thanks for BlueClouds for correcting my previous statement.

    I have just reported this as an issue on the extension's github project.

    0 讨论(0)
  • 2020-11-22 03:00

    You can use aspnet_compiler for this:

    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
    

    where "/Virtual/Application/Path/Or/Path/In/IIS/Metabase" is something like this: "/MyApp" or "/lm/w3svc2/1/root/"

    Also there is a AspNetCompiler Task on MSDN, showing how to integrate aspnet_compiler with 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>
    
    0 讨论(0)
  • 2020-11-22 03:08

    Build > Run Code Analysis

    Hotkey : Alt+F11

    Helped me catch Razor errors.

    0 讨论(0)
  • 2020-11-22 03:09

    Next release of ASP.NET MVC (available in January or so) should have MSBuild task that compiles views, so you might want to wait.

    See announcement

    0 讨论(0)
提交回复
热议问题