Pregunta

¿Cómo puedo construir un MSBuild ItemGroup excluir .svn directorios y todos los archivos dentro (de forma recursiva).Tengo:

<ItemGroup> 
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" Exclude=".svn" />
</ItemGroup>

Por el momento, pero esto no excluye nada!

¿Fue útil?

Solución

Gracias por su ayuda, logró clasificar de la siguiente manera:

<ItemGroup>
     <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" 
                   Exclude="$(LibrariesReleaseDir)\**\.svn\**" />
</ItemGroup>

Resulta de la coincidencia de patrón, básicamente, se ejecuta en los archivos, por lo que tiene que excluir todo por DEBAJO de la .svn directorios (.svn\\**) para MSBuild para excluir la .svn directorio de sí mismo.

Otros consejos

Así que el problema es con el encadenamiento de las variables, por alguna razón, en msbuild.Las siguientes obras para mí, el aviso de que tengo que sólo el uso de rutas relativas basado en la MSBuildProjectDirectory variable.

<CreateItem Include="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\*.*"
            Exclude="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\.svn\**">
  <Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>

La siguiente no funciona:

<PropertyGroup>
    <WebProjectDir>$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI</WebProjectDir>
</PropertyGroup>
<CreateItem Include="$(WebProjectDir)\**\*.*"
            Exclude="$(WebProjectDir)\**\.svn\**">
  <Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>

Muy extraño!Acabo de pasar como 3 horas en este.

Aquí está una manera mejor de hacerlo, realmente de forma recursiva.Me parece que no puede obtener su solución para ir más de 1 nivel de profundidad:

<LibraryFiles  
    Include="$(LibrariesReleaseDir)**\*.*"  
    Exclude="$(LibrariesReleaseDir)**\.svn\**\*.*"/>

Me he topado con algunos problemas técnicos mediante el Incluir/Excluir de enfoque, así que aquí es algo que ha funcionado para mí en su lugar:

<ItemGroup>
    <MyFiles Include=".\PathToYourStuff\**" />
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" />
</ItemGroup>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top