2011-05-10 18 views
6

¿Hay alguna manera de limitar la creación de vistas a solo archivos incluidos en el archivo .csproj? ¿O hay al menos una forma de excluir ciertas carpetas de ser construidas?Parece que MvcBuildViews compila más archivos que los incluidos en el archivo .csproj

En nuestra estructura de carpetas de proyectos tenemos una carpeta \ Admin \ Mocks que contiene muchos archivos .aspx y .cshtml simulados, y mientras que la carpeta \ Admin \ Mocks no está incluida en el archivo .csproj (aunque \ Admin), parece que todos los archivos en ese árbol se están construyendo. Esto, por supuesto, genera MUCHOS errores de compilación.

no estoy seguro de que esto hace una diferencia, pero nuestro proyecto es una aplicación Web Forms híbridos/MvC3 (ambos formularios Web y Razor Ver Motores) usando Asp.Net 4.

Respuesta

2

Si es posible, crear una web independiente proyecto y coloque el contenido que no desea que se construya allí, asegurándose de establecer MVCBuildViews en falso.

+0

+1. Nunca pongas cosas falsas en tu aplicación real. La ley de Murphy dice que "se filtrará". –

+0

Los Mocks no están en la aplicación "real", no están incluidos en el csproj y nunca se implementan. Tener los simuladores en vivo fuera de nuestra estructura de carpetas normal hace que sea más difícil hacer referencia a los recursos de css/js/image. Además, como se trata de un proyecto heredado, en realidad no es factible extraer los Mocks (y otras carpetas, los simulacros son solo un ejemplo). –

+0

De acuerdo, haga una copia del proyecto web, pero cambie el nombre del espacio de nombres a "MyWebSite.Mock" o "MyWebSite.Copy" y configure MVCBuildViews como falso. –

3

Según la marca de tiempo, supongo que eventualmente trabajó en esto, pero aquí encontré en Google una solución para el mismo problema.

Tenemos un montón de viejos vistas formularios web que sólo se comprueban en (no referenciado por el proyecto) para fines de referencia y para las pruebas A/B, mientras que estamos actualizando la aplicación. (Formas web -> Razor, MVC2 -> MVC4, etc.)

Esto fue un problema ya que los archivos .cshtml y .aspx se estaban creando y los errores de las vistas de Webform estaban rompiendo la compilación.

La solución para nosotros fue cambiar el nombre de los viejos archivos de vista de Index.aspx a Index.aspx.old

(En su caso yo sugeriría Index.aspx .mock?)

Esto significaba que se excluyeron del MvcBuildViews = verdadero procesamiento, pero todavía eran de fácil acceso y se podían abrir desde Visua l Studio.

El beneficio adicional es que puede cambiar el abrir por defecto para esa extensión para usar el editor de Webforms para que pueda obtener resaltado y todo.

+0

Esto soluciona el problema, es realmente extraño que mvc construya archivos de proyecto excluidos. –

Cuestiones relacionadas