2011-04-14 11 views
58

¿Existe alguna manera de que Visual Studio (estoy usando 2010) encuentre errores en las vistas de maquinilla de afeitar durante las compilaciones, de la misma forma que lo haría con otro código en un proyecto C#?Verificar errores de maquinilla de afeitar durante la compilación

Es simplemente un dolor que pueda verificar cualquier error en su código y pensar que todo está bien, pero parece que no puede estar seguro acerca de las vistas a menos que revise cada una.

BTW Obviamente no codigo en mi opinión, estoy hablando de métodos de extensión de URL o HTML, por ejemplo.

+5

Creo que esto funcionaría exactamente igual: http://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc – Will

+0

Brillante, muchas gracias! – isNaN1247

Respuesta

86

intente configurar MVCBuildViews en true en el archivo de proyecto (es decir, editar el archivo csproj)

<MvcBuildViews>true</MvcBuildViews> 
+0

Gave Will +1 para entrar allí primero - Gracias por aclarar la solución para una referencia rápida. Marcado como respuesta. – isNaN1247

+0

@beardtwizzle: También puedes + JP. Esa es una nueva característica de MVC (creo 2) de la que me olvidé por completo (y definitivamente es la mejor respuesta). – Will

+0

@Lo siento, sí + a JP merecido :) – isNaN1247

10

vistas edificio toma un tiempo y el extra de 10 + segundos para hacer una versión de depuración puede ser molesto rápido, por lo que por lo general, solo establece MvcBuildViews en true en las configuraciones de compilación de tipo de lanzamiento. De esta forma, si tiene un servidor de compilación, detectará el error por usted, o puede ejecutar manualmente una compilación de lanzamiento de vez en cuando para verificar sus vistas.

No creo que el orden sea importante para los elementos de PropertyGroup, pero para un ejemplo más completo, incluí los elementos encima y debajo del elemento MvcBuildViews.

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    ... 
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> 
    <MvcBuildViews>false</MvcBuildViews> 
    <UseIISExpress>false</UseIISExpress> 
    ... 
</PropertyGroup> 

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    ... 
    <ErrorReport>prompt</ErrorReport> 
    <MvcBuildViews>true</MvcBuildViews> 
    <WarningLevel>4</WarningLevel> 
    ... 
</PropertyGroup> 

El elemento MvcBuildViews en el PropertyGroup parte superior se añadió por VS en la creación del proyecto, la específica configuración de generación (PropertyGroup inferior) i añadió manualmente

+0

No puedo hacer que esto funcione - las etiquetas no estaban ya allí, tuve que agregarlos manualmente (si es relevante). Mis vistas tienen muchos errores y una compilación no los detecta en ninguna configuración. – niico

0

Trate de añadir en el modo de edición de proyecto el siguiente conjunto: System.Core, de acuerdo con el código:

... 
<Reference Include="System.Core, Version=4.0.0.0" /> 
<Reference Include="System.Net.Http" /> 
<Reference Include="System.Net.Http.WebRequest" /> 
... 

a veces esto no ensamblador cargadora de forma correcta, en mi caso, funcionó!

Cuestiones relacionadas