Copy 작업Copy Task

파일 시스템의 새 위치에 파일을 복사합니다.Copies files to a new location in the file system.

매개 변수Parameters

다음 표에서는 Copy 작업의 매개 변수에 대해 설명합니다.The following table describes the parameters of the Copy task.

매개 변수Parameter 설명Description
CopiedFiles 선택적 ITaskItem[] 출력 매개 변수입니다.Optional ITaskItem[] output parameter.

복사된 항목을 계산합니다.Contains the items that were successfully copied.
DestinationFiles 선택적 ITaskItem[] 매개 변수입니다.Optional ITaskItem[] parameter.

소스 파일을 복사할 파일의 목록을 지정합니다.Specifies the list of files to copy the source files to. 이 목록은 SourceFiles 매개 변수에 지정된 목록이 포함된 일대일 매핑이어야 합니다.This list is expected to be a one-to-one mapping with the list specified in the SourceFiles parameter. 즉, SourceFiles에 지정된 첫 번째 파일이 DestinationFiles 등에 지정된 첫 번째 위치에 복사됩니다.That is, the first file specified in SourceFiles will be copied to the first location specified in DestinationFiles, and so forth.
DestinationFolder 선택적 ITaskItem 매개 변수입니다.Optional ITaskItem parameter.

파일을 복사하려는 디렉터리를 지정합니다.Specifies the directory to which you want to copy the files. 파일이 아닌 디렉터리여야 합니다.This must be a directory, not a file. 디렉터리가 없는 경우 자동으로 생성됩니다.If the directory does not exist, it is created automatically.
OverwriteReadOnlyFiles 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

파일이 읽기 전용으로 표시된 경우에 파일을 덮어씁니다.Overwrite files even if they are marked as read only files
Retries 선택적 Int32 매개 변수입니다.Optional Int32 parameter.

이전 시도가 모두 실패한 경우 복사를 시도할 횟수를 지정합니다.Specifies how many times to attempt to copy, if all previous attempts have failed. 기본값은 0입니다.Defaults to zero.

참고: 다시 시도하면 빌드 프로세스에서 동기화 문제를 마스킹할 수 있습니다.Note: The use of retries can mask a synchronization problem in your build process.
RetryDelayMilliseconds 선택적 Int32 매개 변수입니다.Optional Int32 parameter.

필요한 다시 시도 간의 지연 시간을 지정합니다.Specifies the delay between any necessary retries. 기본값은 CopyTask 생성자에 전달되는 RetryDelayMillisecondsDefault 인수입니다.Defaults to the RetryDelayMillisecondsDefault argument, which is passed to the CopyTask constructor.
SkipUnchangedFiles 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

true이면 소스와 대상 간에 변경되지 않은 파일의 복사를 건너뜁니다.If true, skips the copying of files that are unchanged between the source and destination. 파일 크기가 같고 마지막으로 수정된 시간이 같으면 Copy 작업에서 파일이 변경되지 않은 것으로 간주합니다.The Copy task considers files to be unchanged if they have the same size and the same last modified time. 참고: 이 매개 변수를 true로 설정하면 포함 대상에 대한 종속성 분석을 사용하지 않아야 합니다. 소스 파일의 마지막으로 수정된 시간이 대상 파일의 마지막으로 수정된 시간보다 더 최신일 경우에만 작업을 수행하기 때문입니다.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 필수 ITaskItem[] 매개 변수입니다.Required ITaskItem[] parameter.

복사할 파일을 지정합니다.Specifies the files to copy.
UseHardlinksIfPossible 선택적 Boolean 매개 변수입니다.Optional Boolean parameter.

true이면 파일을 복사 하는 대신 복사된 파일에 대한 하드 링크를 만듭니다.If true, creates Hard Links for the copied files instead of copying the files.

경고Warnings

다음을 포함하여 경고가 기록됩니다.Warnings are logged, including:

  • Copy.DestinationIsDirectory

  • Copy.SourceIsDirectory

  • Copy.SourceFileNotFound

  • Copy.CreatesDirectory

  • Copy.HardLinkComment

  • Copy.RetryingAsFileCopy

  • Copy.FileComment

  • Copy.RemovingReadOnlyAttribute

설명Remarks

DestinationFolder 또는 DestinationFiles 매개 변수 중 하나(둘 다가 아닌)를 지정해야 합니다.Either the DestinationFolder or the DestinationFiles parameter must be specified, but not both. 둘 다를 지정하는 경우 작업이 실패하고 오류가 기록됩니다.If both are specified, the task fails and an error is logged.

이 작업은 위에 나와 있는 매개 변수 외에 Task 클래스에서 직접 상속하는 TaskExtension 클래스의 매개 변수도 상속합니다.In addition to the parameters listed above, this task inherits parameters from the TaskExtension class, which itself inherits from the Task class. 이러한 추가 매개 변수 및 해당 설명이 포함된 목록은 TaskExtension Base Class를 참조하세요.For a list of these additional parameters and their descriptions, see TaskExtension Base Class.

예제Example

다음 예제에서는 MySourceFiles 항목 컬렉션의 항목을 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>  

예제Example

다음 예제에서는 재귀적 복사를 수행하는 방법을 보여 줍니다.The following example demonstrates how to do a recursive copy. 이 프로젝트는 디렉터리 구조를 유지하면서 c:\MySourceTree의 모든 파일을 재귀적으로 c:\MyDestinationTree에 복사합니다.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>  

참고 항목See Also

작업 Tasks
작업 참조Task Reference