asp.net - route - partial views asp net mvc
Compilar vistas en ASP.NET MVC (8)
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?
Además, si usa Resharper, puede activar Solution Wide Analysis y detectará cualquier error del compilador que pueda tener en los archivos aspx. Esto es lo que hacemos...
Construir> Ejecutar análisis de código
Tecla de acceso rápido: Alt + F11
Me ayudó a atrapar errores de Razor.
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
La respuesta dada aquí funciona para algunas versiones de MVC pero no para otras.
La solución simple funcionó para MVC1, pero al actualizar a MVC2 las vistas ya no se cumplían. Esto se debió a un error en los archivos del proyecto del sitio web. Vea este artículo de Haacked.
Vea esto: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
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>
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.
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:
- Abra el archivo de proyecto en un editor de texto.
- Agregue el siguiente elemento debajo del elemento superior
<PropertyGroup>
:<MvcBuildViews>true</MvcBuildViews>
- 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>
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.