Frage

Wie kann ich eine MSBuild ItemGroup konstruieren Verzeichnisse ausschließen .svn und alle Dateien innerhalb (rekursiv). Ich habe:

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

Im Moment, aber das schließt nicht alles!

War es hilfreich?

Lösung

Danke für Ihre Hilfe, gelang es zu sortieren, wie folgt:

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

das Muster im Grunde läuft auf Dateien Es stellte sich heraus übereinstimmt, so dass Sie alles unter dem .svn Verzeichnisse (.svn\\**) ausschließen für MSBuild das .svn Verzeichnis auszuschließen selbst.

Andere Tipps

So das Problem ist mit Variablen aus irgendeinem Grunde in msbuild verketten. Die folgenden Werke für mich feststellen, dass ich auf der Variable MSBuildProjectDirectory nur relative Pfade basierend verwenden.

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

Die folgenden funktioniert nicht:

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

Sehr seltsam! Ich möchte nur 3 Stunden auf diesem ausgegeben.

Hier ist eine noch bessere Möglichkeit, es zu tun, wirklich rekursiv. Ich kann nicht scheinen, Ihre Lösung zu erhalten, um mehr als 1 Ebene tief zu gehen:

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

Ich habe in einige Pannen läuft mit dem Einschließen / Ausschließen Ansatz, hier ist also etwas, das stattdessen für mich gearbeitet hat:

<ItemGroup>
    <MyFiles Include=".\PathToYourStuff\**" />
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" />
</ItemGroup>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top