다음을 통해 공유


Copy 작업

파일 시스템의 새 위치에 파일을 복사합니다.

매개 변수

다음 표에서는 Copy 작업의 매개 변수에 대해 설명합니다.

Parameter

설명

CopiedFiles

선택적 ITaskItem[] 출력 매개 변수입니다.

성공적으로 복사한 항목이 들어 있습니다.

DestinationFiles

선택적 ITaskItem[] 매개 변수입니다.

소스 파일을 복사할 대상이 될 파일 목록을 지정합니다. 이 목록은 SourceFiles 매개 변수에서 지정한 목록과 일대일로 매핑되어야 합니다. 즉, SourceFiles에서 지정한 첫 번째 파일은 DestinationFiles에서 지정한 첫 번째 위치에 복사됩니다.

DestinationFolder

선택적 ITaskItem 매개 변수입니다.

파일을 복사할 대상이 될 디렉터리를 지정합니다. 이는 파일이 아닌 디렉터리여야 합니다. 디렉터리가 없으면 자동으로 만들어집니다.

OverwriteReadOnlyFiles

선택적 Boolean 매개 변수입니다.

읽기 전용 파일로 표시되어 있는 경우에도 파일을 덮어씁니다.

Retries

선택적 Int32 매개 변수입니다.

이전 시도가 모두 실패한 경우 복사를 시도할 횟수를 지정합니다. 기본값은 0입니다.

참고:    다시 시도하면 빌드 프로세스의 동기화 문제가 마스킹될 수 있습니다.

RetryDelayMilliseconds

선택적 Int32 매개 변수입니다.

필요한 재시도 사이의 지연을 지정합니다. 기본값으로 RetryDelayMillisecondsDefault 인수가 지정되어 CopyTask 생성자로 전달됩니다.

SkipUnchangedFiles

선택적 Boolean 매개 변수입니다.

true이면 소스와 대상 사이에 변경되지 않은 파일의 복사를 생략합니다. Copy 작업에서는 파일 크기가 동일하고 마지막으로 수정된 시간이 동일한 경우 파일이 변경되지 않은 것으로 간주합니다.

참고

이 매개 변수를 true로 설정한 경우에는 포함하는 대상에 대해 종속성 분석을 사용하지 말아야 합니다. 이 분석은 소스 파일을 마지막으로 수정한 시간이 대상 파일을 마지막으로 수정한 시간보다 늦은 경우에만 실행되기 때문입니다.

SourceFiles

필수적 ITaskItem[] 매개 변수입니다.

복사할 파일을 지정합니다.

UseHardlinksIfPossible

선택적 Boolean 매개 변수입니다.

true인 경우 파일을 복사하지 않고 복사된 파일의 하드 링크를 만듭니다.

설명

DestinationFolder 또는 DestinationFiles 매개 변수를 지정해야 하지만 두 매개 변수를 함께 지정할 수는 없습니다. 두 매개 변수를 모두 지정하면 작업이 실패하고 오류가 기록됩니다.

위에 나열된 매개 변수 외에도 이 작업은 Task 클래스에서 상속하는 TaskExtension 클래스의 매개 변수를 상속합니다. 추가 매개 변수 목록과 해당 설명은 TaskExtension 기본 클래스를 참조하십시오.

예제

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

다음 예제에서는 재귀 복사를 수행하는 방법을 보여 줍니다. 이 프로젝트에서는 디렉터리 구조를 유지한 채 c:\MySourceTree의 모든 파일을 c:\MyDestinationTree에 재귀적으로 복사합니다.

<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>

참고 항목

개념

MSBuild 작업

기타 리소스

MSBuild 작업 참조