asp.net-mvc tag - Compilar vistas en ASP.NET MVC




helpers core (8)

La próxima versión de ASP.NET MVC (disponible aproximadamente en enero) debe tener una tarea de MSBuild que compile las vistas, por lo que es posible que desee esperar.

Ver announcement

Quiero una tarea de msbuild para compilar las vistas para que pueda ver si hay errores en el tiempo de compilación en el momento ... compile. ¿Algunas ideas?


Usar la extensión de Visual Studio Power Tools ( gratis ) ayuda un poco . Específicamente, la característica del Solution Error Visualizer . Con él, los errores de compilación se marcaron visualmente en el explorador de soluciones (en el archivo fuente donde se encontró el error). Sin embargo, por alguna razón, esta característica no funciona como con otros errores en ninguna otra parte del código.

Con las vistas de MVC, los errores en tiempo de compilación todavía estarán subrayados en rojo en sus respectivos archivos .cs, pero la señalización de estos errores no se propagará hacia arriba en el Explorador de soluciones (de ninguna manera, ni siquiera en el archivo fuente que contiene).

Gracias por BlueClouds por corregir mi declaración anterior.

Acabo de informar de esto como un issue en el proyecto github de la extensión.


Francamente recomendaría el paquete de nuget RazorGenerator. De esa manera, sus vistas tienen un archivo .designer.cs generado cuando los guarda y además de obtener errores de tiempo de compilación para sus vistas, también se precompilan en el ensamblaje (= calentamiento más rápido) y Resharper también proporciona ayuda adicional.

Para utilizar esto, incluya el paquete nuget RazorGenerator en su proyecto MVC de ASP.NET e instale la extensión " Generador Razor " en el elemento bajo Herramientas → Extensiones y actualizaciones .

Usamos esto y la sobrecarga por compilación con este enfoque es mucho menor. Además de esto, probablemente recomendaría .NET Demon by RedGate, que reduce aún más el impacto del tiempo de compilación sustancialmente.

Espero que esto ayude.


De la palabra readme doc para RC1 (no indexada por google)

Paso posterior a la compilación del compilador de ASP.NET

Actualmente, los errores dentro de un archivo de vista no se detectan hasta el tiempo de ejecución. Para permitirle detectar estos errores en tiempo de compilación, los proyectos MVC de ASP.NET ahora incluyen una propiedad MvcBuildViews, que está deshabilitada de forma predeterminada. Para habilitar esta propiedad, abra el archivo de proyecto y establezca la propiedad MvcBuildViews en true, como se muestra en el siguiente ejemplo:

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

Nota Habilitar esta característica agrega algo de sobrecarga al tiempo de construcción.

Puede actualizar los proyectos que se crearon con versiones anteriores de MVC para incluir la validación en tiempo de compilación de las vistas realizando los siguientes pasos:

  1. Abra el archivo de proyecto en un editor de texto.
  2. Agregue el siguiente elemento debajo del elemento superior <PropertyGroup> : <MvcBuildViews>true</MvcBuildViews>
  3. Al final del archivo del proyecto, elimine el comentario del elemento <Target Name="AfterBuild"> y <Target Name="AfterBuild"> para que coincida con lo siguiente:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>

Puedes usar aspnet_compiler para esto:

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

donde " / Virtual / Application / Path / Or / Path / In / IIS / Metabase " es algo como esto: " / MyApp " o " / lm / w3svc2 / 1 / root / "

También hay una Tarea de AspNetCompiler en MSDN, que muestra cómo integrar aspnet_compiler con 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>

Construir> Ejecutar análisis de código

Tecla de acceso rápido: Alt + F11

Me ayudó a atrapar errores de Razor.



¿Has probado RedirectToAction ?





asp.net asp.net-mvc msbuild