2008-09-16 9 views

Antwort

64

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

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

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

+1

@Kieran Benton: Dank für das Update, werde ich einreichen connect.microsoft.com-Anfrage, um die MSDN-Dokumentation zu klären. – user7116

+1

Ich merke, dass Sie auch den Wert Ausschließen mit "$ (LibrariesReleaseDir) \\ ** \" (verglichen mit dem Wert in Ihrem OP) vorangestellt haben. Ist das wichtig? –

4

Hier ist ein noch besserer Weg, wirklich rekursiv. Ich kann nicht scheinen, Ihre Lösung zu erhalten, mehr als 1 Ebene tief zu gehen:

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

Funktioniert das auch mit der Datei .svn \ entries, da im Dateinamen kein Punkt enthalten ist? –

12

So ist das Problem mit Variablen aus irgendeinem Grunde in msbuild verketten. Folgendes funktioniert für mich: Beachten Sie, dass ich nur relative Pfade basierend auf der Variablen MSBuildProjectDirectory verwenden muss.

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

Die folgende nicht funktioniert:

<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 habe gerade 3 Stunden hier verbracht.

+2

BTW: Das ist die richtige Antwort. – splattne

1

Ich habe in einigen Pannen laufen Ansatz der ein-/ausschließen, so ist hier etwas, das stattdessen für mich gearbeitet hat:

<ItemGroup> 
    <MyFiles Include=".\PathToYourStuff\**" /> 
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" /> 
</ItemGroup> 
Verwandte Themen