2010-07-23 15 views
7

Estoy sirviendo mis vistas asp.net mvc desde muchos ensambles y copiando vistas a la aplicación principal en el evento posterior a la construcción.Visual Studio: ¿Cómo anular la "Acción de compilación" predeterminada para ciertos tipos de extensiones por proyecto o solución?

Esto funciona, sin embargo, me di cuenta, que cuando cambio algo a la vista y simplemente presiono F5, los cambios no están incluidos. Lo que tengo que hacer para ver los cambios es guardar, compilar < - haciendo clic explícitamente, y luego presionar F5. Sin embargo, es una solución bastante molesta.

Descubrí que establecer la acción de compilación en "Recurso incrustado" en la vista también resuelve el problema, sin embargo otros desarrolladores pueden no recordar que tienen que hacer esto después de agregar cada vista a la solución.

¿Hay alguna manera de anular la acción de compilación predeterminada para ciertas extensiones de archivo, como: * .aspx, * .ascx en proyecto o (mejor) en solución?

Lo que he encontrado es la posibilidad de añadir esta opción de forma global, por máquina, pero no quiero hacer eso (enlace: http://blog.andreloker.de/post/2010/07/02/Visual-Studio-default-build-action-for-non-default-file-types.aspx)

¿Alguna idea?

+7

Señala un artículo que mencioné en mi publicación. ¿Has leído mi publicación o simplemente escaneado el título? –

Respuesta

6

Consideremos el siguiente esquema de archivo de proyecto:

<Project ToolsVersion="3.5" DefaultTargets="EmbedViews;Build" ...> 
... 
    <Target Name="EmbedViews"> 
    <ItemGroup> 
     <EmbeddedResource Include="Views\*\*.aspx" /> 
     <EmbeddedResource Include="Views\*\*.ascx" /> 
    </ItemGroup> 
    </Target> 
</Project> 

Esto agregará todos los archivos aspx y ascx en Views\<subfolder> a su biblioteca como Embedded Resource. Observe que EmbedViews se añade a DefaultTargetsantesBuild - orden es importante aquí, descubrí haciendo el mismo error a mí mismo :-)

Desde la edición de todos sus archivos de proyecto para obtener este fragmento en el que es engorroso, usted podría hacer su propia plantilla de proyecto con esto incluido.

Háganme saber si esto ayudó.

+1

Intenté esto pero no pude hacer que funcione – Colin

+2

Pequeña enmienda si desea incluir cualquier número de descendientes en la estructura de carpetas: "Views \\ ** \\ *. Aspx" –

0

En caso de que alguien se pregunta aquí - todavía no hay una manera de hacerlo si quieres que funcione en actual y futuras artículos.

En VS 2017 cuando agregar un nuevo archivo cuando el cajón de sastre regla está presente (por ejemplo Content Include = "**.*ts") si se agrega un nuevo archivo, se agregará su propia línea de <ItemGroup> con su propio BuildAction, haciendo caso omiso de su predefinida cajón de sastre .

Cuestiones relacionadas