2009-03-31 15 views
10

Agregué un proyecto de implementación web a mi solución para crear una implementación limpia de mi aplicación web. Esto funciona principalmente como se esperaba ... es decir, crea la fuente & y luego copia los archivos que se implementarán en una carpeta/Release (y excluye elementos como los archivos fuente y mis carpetas .svn, etc.).Agregar a ExcludeFromBuild ItemGroup integrado con proyecto de implementación web

Pero ahora quiero excluir explícitamente algunos otros archivos (en aras de la simplicidad digamos un solo archivo llamado somefile.txt). Por lo tanto, agrego un grupo de artículos para el archivo wdproj de la siguiente manera:

<ItemGroup> 
    <ExcludeFromBuild Include="somefile.txt" /> 
</ItemGroup> 

Esto de hecho excluye el archivo específico conforme a lo solicitado, pero ahora los archivos excluidos por defecto ya no están excluidos. Específicamente, ahora todos mis archivos svn están en la carpeta Release &, también hay una carpeta Source en el mismo nivel con todo el código fuente en ella.

Básicamente, parece que la definición del grupo de elementos ExcludeFromBuild sobrescribe algunos de los valores predeterminados incorporados, en lugar de agregarlos.

No es exactamente un tapón de espectáculo, pero no es ideal ... Entonces, ¿alguien sabe cómo simplemente agregar un archivo al grupo predeterminado ExcludeFromBuild? ¿O se trata de utilizar los valores por defecto Vs. excluyendo todo a mano vs. borrar los archivos que no tienes después de una compilación predeterminada?

Respuesta

19

Bueno, para cualquiera que venga, pensé que debería responder a mi propia pregunta ... No encontré la solución exacta que estaba buscando, así que simplemente agregué todo lo que necesitaba excluido manualmente al ExcludeFromBuild ItemGroup (a imitar lo que las opciones predeterminadas parecían hacer & luego también excluir mi archivo específico). Mi lista de ExcludeFromBuild terminó con este aspecto:

<ItemGroup> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\somefile.txt" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.scc" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.user" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.vspscc" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.log" /> 
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.svclog" /> 
</ItemGroup> 

excluye Básicamente todos los archivos de registro, archivos de usuario/proyectos, archivos de SVN, archivos seguros de origen, etc., además de los archivos personalizados que quería ignorar en el primer lugar.

+0

¡Gracias por eso! –

+0

ta, solo tenía .svn \ ** \ *. * Y no pude entender por qué estaba funcionando. – Rippo

0

No estoy seguro de si esto ayuda, pero el comando tiene una propiedad Excluir, puede anular el objetivo que está copiando los archivos y usar para incluir/excluir lo que necesita.

+0

Gracias por la ayuda, pero terminé haciéndolo a mano usando ExcludeFromBuild ... – Alconja

0

Sí, sé que esto es siempre viejo, pero ¿has probado esto?

<ItemGroup> 
    <ExcludeFromBuild Include="somefile.txt;$(ExcludeFromBuild)" /> 
</ItemGroup> 
+0

Como dijiste, fue hace mucho tiempo, así que para ser sincero, no recuerdo qué más intenté ... ¿Has probado esto? ¿Funciona? – Alconja

Cuestiones relacionadas