2008-09-16 9 views

Respuesta

64

Gracias por su ayuda, logró solucionar el problema de la siguiente manera:

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

Resulta que la coincidencia de patrones, básicamente, se ejecuta en archivos, así que hay que excluir todo por debajo de los .svn directorios (.svn\\**) para MSBuild para excluir el directorio .svn.

+1

@Kieran Benton: gracias por la actualización, voy a presentar una Solicitud de connect.microsoft.com para aclarar la documentación de MSDN. – user7116

+1

Me di cuenta de que también prefijaba el valor Excluir con "$ (LibrariesReleaseDir) \\ ** \" (en comparación con el valor en su OP). ¿Eso es significativo? –

4

Aquí hay una forma aún mejor de hacerlo, de manera verdaderamente recursiva. Parece que no puedo obtener su solución para más de 1 nivel de profundidad:

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

¿Funciona esto también en el archivo .svn \ entries, dado que no hay un punto en el nombre del archivo? –

12

Así que el problema es con el encadenamiento de variables por algún motivo en msbuild. Lo siguiente funciona para mí, observe que solo debo usar rutas relativas basadas en la variable MSBuildProjectDirectory.

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

El 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 caso.

+2

BTW: esta es la respuesta correcta. – splattne

1

me he encontrado con algunos problemas técnicos con el incluir/excluir enfoque, por lo que aquí es algo que ha funcionado para mí en su lugar:

<ItemGroup> 
    <MyFiles Include=".\PathToYourStuff\**" /> 
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" /> 
</ItemGroup> 
Cuestiones relacionadas