Copy (tarea)Copy task

Copia los archivos en una nueva ubicación del sistema de archivos.Copies files to a new location in the file system.

ParámetrosParameters

En la siguiente tabla se describen los parámetros de la tarea Copy .The following table describes the parameters of the Copy task.

ParámetroParameter DescripciónDescription
CopiedFiles Parámetro de salida ITaskItem[] opcional.Optional ITaskItem[] output parameter.

Contiene los elementos que se copiaron correctamente.Contains the items that were successfully copied.
DestinationFiles Parámetro ITaskItem[] opcional.Optional ITaskItem[] parameter.

Especifica la lista de archivos en la que se copiarán los archivos de código fuente.Specifies the list of files to copy the source files to. Se espera que esta lista sea una asignación unívoca con la lista especificada en el parámetro SourceFiles.This list is expected to be a one-to-one mapping with the list specified in the SourceFiles parameter. Es decir, el primer archivo especificado en SourceFiles se copiará en la primera ubicación especificada en DestinationFiles, etc.That is, the first file specified in SourceFiles will be copied to the first location specified in DestinationFiles, and so forth.
DestinationFolder Parámetro ITaskItem opcional.Optional ITaskItem parameter.

Especifica el directorio en el que desea copiar los archivos.Specifies the directory to which you want to copy the files. Este debe ser un directorio, no un archivo.This must be a directory, not a file. Si el directorio no existe, se crea automáticamente.If the directory does not exist, it is created automatically.
OverwriteReadOnlyFiles Parámetro Boolean opcional.Optional Boolean parameter.

Sobrescribe los archivos aunque estén marcados como archivos de solo lecturaOverwrite files even if they are marked as read only files
Retries Parámetro Int32 opcional.Optional Int32 parameter.

Especifica cuántas veces se intentará copiar, si se produjera un error en todos los intentos anteriores.Specifies how many times to attempt to copy, if all previous attempts have failed. Se establece en cero de forma predeterminada.Defaults to zero.

Nota: El uso de reintentos puede enmascarar un problema de sincronización en el proceso de compilación.Note: The use of retries can mask a synchronization problem in your build process.
RetryDelayMilliseconds Parámetro Int32 opcional.Optional Int32 parameter.

Especifica el retraso entre los reintentos necesarios.Specifies the delay between any necessary retries. Adopta como valor predeterminado el argumento RetryDelayMillisecondsDefault, que se pasa al constructor CopyTask.Defaults to the RetryDelayMillisecondsDefault argument, which is passed to the CopyTask constructor.
SkipUnchangedFiles Parámetro Boolean opcional.Optional Boolean parameter.

Si es true, se omite la copia de los archivos sin modificar entre el origen y destino.If true, skips the copying of files that are unchanged between the source and destination. La tarea Copy considera que los archivos están sin modificar si tienen el mismo tamaño y la misma hora de última modificación.The Copy task considers files to be unchanged if they have the same size and the same last modified time.

Nota: Si se establece este parámetro como true, no debe usar el análisis de dependencias en el destino continente, ya que solo se ejecuta la tarea si las horas de última modificación de los archivos de origen son más recientes que las de los archivos de destino.Note: If you set this parameter to true, you should not use dependency analysis on the containing target, because that only runs the task if the last-modified times of the source files are newer than the last-modified times of the destination files.
SourceFiles Parámetro ITaskItem[] requerido.Required ITaskItem[] parameter.

Especifica los archivos que se van a copiar.Specifies the files to copy.
UseHardlinksIfPossible Parámetro Boolean opcional.Optional Boolean parameter.

Si es true, crea vínculos físicos para los archivos copiados en lugar de copiar los archivos.If true, creates Hard Links for the copied files instead of copying the files.

AdvertenciasWarnings

Las advertencias se registran, incluidos:Warnings are logged, including:

  • Copy.DestinationIsDirectory

  • Copy.SourceIsDirectory

  • Copy.SourceFileNotFound

  • Copy.CreatesDirectory

  • Copy.HardLinkComment

  • Copy.RetryingAsFileCopy

  • Copy.FileComment

  • Copy.RemovingReadOnlyAttribute

ComentariosRemarks

Se debe especificar el parámetro DestinationFolder o DestinationFiles, pero no ambos.Either the DestinationFolder or the DestinationFiles parameter must be specified, but not both. Si se especifican los dos, la tarea produce un error y se registra un error.If both are specified, the task fails and an error is logged.

Además de los parámetros mencionados anteriormente, esta tarea hereda los parámetros de la clase TaskExtension, que a su vez hereda de la clase Task.In addition to the parameters listed above, this task inherits parameters from the TaskExtension class, which itself inherits from the Task class. Para obtener una lista de estos parámetros adicionales y sus descripciones, vea TaskExtension (Clase base).For a list of these additional parameters and their descriptions, see TaskExtension base class.

EjemploExample

En el ejemplo siguiente se copian los elementos de la colección de elementos MySourceFiles en la carpeta c:\MyProject\Destination.The following example copies the items in the MySourceFiles item collection into the folder c:\MyProject\Destination.

<Project xmlns="http://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>  

EjemploExample

En el ejemplo siguiente se muestra cómo hacer una copia recursiva.The following example demonstrates how to do a recursive copy. Este proyecto copia de forma recursiva todos los archivos de c:\MySourceTree en c:\MyDestinationTree, manteniendo la estructura de directorios.This project copies all of the files recursively from c:\MySourceTree into c:\MyDestinationTree, while maintaining the directory structure.

<Project xmlns="http://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>  

Vea tambiénSee also

Tareas Tasks
Referencia de tareasTask reference