Copy (Tarea)
Actualización: noviembre 2007
Copia los archivos en el sistema de archivos a una nueva ubicación.
Parámetros
En la siguiente tabla se describen los parámetros de la tarea Copy.
Parámetro |
Descripción |
---|---|
CopiedFiles |
Parámetro de salida ITaskItem[] opcional. Contiene los elementos que se copiaron correctamente. |
DestinationFiles |
Parámetro ITaskItem[] opcional. Especifica la lista de archivos en la que se copiarán los archivos de código fuente. Se espera que esta lista sea una asignación unívoca con la lista especificada en el parámetro SourceFiles. Es decir, el primer archivo especificado en SourceFiles se copiará a la primera ubicación especificada en DestinationFiles y así en adelante. |
DestinationFolder |
Parámetro ITaskItem opcional. Especifica el directorio al que desea copiar los archivos. Éste debe ser un directorio, no un archivo. Si el directorio no existe, se crea automáticamente. |
OverwriteReadOnlyFiles |
Parámetro Boolean opcional. Sobrescribe los archivos aunque estén marcados como archivos de sólo lectura |
SkipUnchangedFiles |
Parámetro Boolean opcional. Si es true, omite la copia de los archivos sin modificar entre el origen y destino. La tarea Copy considera que los archivos están sin modificar si tienen el mismo tamaño y el mismo valor de última modificación.
Nota:
Si se establece este parámetro como true, no deberá utilizar el análisis de dependencias en el destino continente, ya que sólo se ejecuta la tarea si el valor de última modificación de los archivos de código fuente es más reciente que el valor de última modificación de los archivos de destino.
|
SourceFiles |
Parámetro ITaskItem[] requerido. Especifica los archivos que se van a copiar. |
Comentarios
Se debe especificar DestinationFolder o el parámetro DestinationFiles, pero no ambos. Si se especifican los dos, en la tarea se produce un error y se registra un error.
Ejemplo
En el ejemplo siguiente se copian los elementos de la colección de elementos MySourceFiles en la carpeta c:\MyProject\Destination.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="a.cs;b.cs;c.cs"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="c:\MyProject\Destination"
/>
</Target>
</Project>
En el ejemplo siguiente se muestra cómo hacer una copia recursiva. Este proyecto copia de forma recursiva todos los archivos de c:\MySourceTree a c:\MyDestinationTree, manteniendo la estructura de directorios.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="c:\MySourceTree\**\*.*"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')"
/>
</Target>
</Project>