2012-10-05 12 views
7

Tengo una carpeta con archivos que tienen nombres que empiezan por App_Web_ y terminan en .dll. No sé qué hay entre esas partes y no sé la cantidad de archivos. Necesito MSBuild para mover esos archivos a otra carpeta.¿Cómo muevo un montón de archivos usando una tarea Mover MSBuild y un comodín?

Así que componen este:

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

pero cuando el objetivo pasa me sale el siguiente resultado:

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

Los archivos son definitivamente allí.

¿Qué estoy haciendo mal? ¿Cómo puedo mover los archivos?

Respuesta

13

No puede usar la expresión regular directamente en los parámetros de la tarea. Es necesario crear una lista de elementos que contiene de archivos para mover y pasar su contenido a la tarea:

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

MSBuild ampliará expresión regular antes de pasarlo al ejecutor de tareas. Así que después de algún objetivo que puede invocar Move tarea:

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

obtengo 'error: Error al inicializar la tarea Mover: la tarea no se ha registrado Move' – knocte

Cuestiones relacionadas