Quiero una tarea de msbuild para compilar las vistas para poder ver si hay errores de tiempo de compilación bien ... tiempo de compilación. ¿Algunas ideas?
Quiero una tarea de msbuild para compilar las vistas para poder ver si hay errores de tiempo de compilación bien ... tiempo de compilación. ¿Algunas ideas?
Respuestas:
Francamente, recomendaría el paquete Nuget RazorGenerator. De esa manera, sus vistas tienen un .designer.cs
archivo generado cuando las 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 usar esto, incluya el paquete nuget RazorGenerator en su proyecto ASP.NET MVC e instale la extensión " Razor Generator " 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 de RedGate, lo que reduce aún más el impacto en el tiempo de compilación.
Espero que esto ayude.
De la palabra léame doc para RC1 (no indexada por google)
Paso posterior a la compilación del compilador 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 ASP.NET MVC ahora incluyen una propiedad MvcBuildViews, que está deshabilitada de manera predeterminada. Para habilitar esta propiedad, abra el archivo del proyecto y establezca la propiedad MvcBuildViews en verdadero, 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 compilación.
Puede actualizar los proyectos que se crearon con versiones anteriores de MVC para incluir la validación de vistas en tiempo de compilación realizando los siguientes pasos:
<PropertyGroup>
:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
elemento y modifíquelo para que coincida con lo siguiente:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Puede 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 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>
Además, si usa Resharper, puede activar Solution Wide Analysis y detectará cualquier error de compilación que pueda tener en los archivos aspx. Esto es lo que hacemos...
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 de proyecto del sitio web. Ver este artículo pirateado.
Vea esto: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
Compilación> Análisis de código de ejecución
Tecla de acceso directo: Alt+F11
Me ayudó a atrapar los errores de Razor.
El uso de la extensión de herramientas de productividad de Visual Studio ( gratis ) ayuda un poco . Específicamente, la Solution Error Visualizer
característica. Con él, los errores de compilación se marcan 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 cualquier otro lugar del código.
Con las vistas MVC, cualquier error en tiempo de compilación seguirá subrayado en rojo en sus respectivos archivos .cs, pero la señalización de estos errores no se propaga hacia arriba en el Explorador de soluciones (de ninguna manera, ni siquiera en el archivo fuente que lo contiene).
Gracias por BlueClouds
corregir mi declaración anterior.
Acabo de informar esto como un problema en el proyecto github de la extensión.