2012-10-05 3 views
7

Ich habe einen Ordner mit Dateien, deren Namen mit App_Web_ beginnen und mit .dll enden. Ich weiß nicht, was zwischen diesen Teilen ist und ich kenne die Anzahl der Dateien nicht. Ich brauche MSBuild, um diese Dateien in einen anderen Ordner zu verschieben.Wie verschiebe ich eine Reihe von Dateien mit einer MSBuild Task verschieben und einem Platzhalter?

So schrieb ich dies:

<Move 
    SourceFiles="c:\source\App_Web_*.dll" 
    DestinationFolder="c:\target" 
/> 

aber wenn das Ziel läuft ich folgende Ausgabe:

error MSB3680: The source file "c:\source\App_Web_*.dll" does not exist. 

Die Dateien auf jeden Fall dabei sind.

Was mache ich falsch? Wie werden die Dateien verschoben?

Antwort

13

Sie können den regulären Ausdruck nicht direkt in Task-Parametern verwenden. Sie benötigen einen Artikel enthält Liste der Dateien erstellen seinen Inhalt an die Aufgabe zu bewegen, und übergeben:

<ItemGroup> 
    <FilesToMove Include="c:\source\App_Web_*.dll"/> 
</ItemGroup> 

MSBuild wird regulären Ausdruck, bevor es an die Aufgabe Testamentsvollstrecker erweitern vorbei. So später in einigen Ziel Sie Move Aufgabe aufrufen kann:

<Target Name="Build"> 
    <Move 
     SourceFiles="@(FilesToMove)" 
     DestinationFolder="C:\target" 
    /> 
</Target> 
+0

ich 'Fehler: Fehler beim Initialisieren der Aufgabe Move: Noch nicht registriert Aufgabe Move' – knocte

Verwandte Themen