Domanda

Come posso costruire un ItemGroup MSBuild per escludere le directory .svn e tutti i file all'interno (ricorsivamente).Ho avuto:

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

Al momento, ma questo non esclude nulla!

È stato utile?

Soluzione

Grazie per il tuo aiuto, sono riuscito a ordinarlo come segue:

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

Risulta che la corrispondenza del modello funziona fondamentalmente sui file, quindi devi escludere tutto SOTTO il .svn directory (.svn\\**) affinché MSBuild escluda il file .svn directory stessa.

Altri suggerimenti

Quindi il problema riguarda il concatenamento delle variabili per qualche motivo in msbuild.Quanto segue funziona per me, nota che devo utilizzare solo percorsi relativi basati sulla variabile MSBuildProjectDirectory.

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

Quanto segue non funziona:

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

Molto strano!Ho appena trascorso circa 3 ore su questo.

Ecco un modo ancora migliore per farlo, veramente ricorsivo.Non riesco a far sì che la tua soluzione vada più di 1 livello in profondità:

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

Ho riscontrato alcuni problemi utilizzando l'approccio Include/Exclude, quindi ecco qualcosa che ha funzionato per me:

<ItemGroup>
    <MyFiles Include=".\PathToYourStuff\**" />
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" />
</ItemGroup>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top