다음을 통해 공유


MSBuild 작업

업데이트: 2007년 11월

빌드 플랫폼에는 빌드 프로세스 동안 개수에 제한 없이 작업을 실행할 수 있는 기능이 있어야 합니다. MSBuild에서는 tasks를 사용하여 이러한 작업을 수행합니다. 작업이란 MSBuild에서 원자 빌드 작업을 수행하는 데 사용하는 실행 코드 단위입니다.

작업 논리

MSBuild XML 프로젝트 파일 형식은 자체에서 빌드 작업을 완전히 실행할 수 없으므로 작업 논리가 프로젝트 파일 외부에서 구현되어야 합니다.

작업의 실행 논리는 Microsoft.Build.Framework 네임스페이스에 정의되어 있는 ITask 인터페이스를 구현하는 .NET 클래스로 구현됩니다.

작업 클래스는 또한 프로젝트 파일의 작업에 사용할 수 있는 입력 및 출력 매개 변수를 정의합니다. 작업 클래스에 의해 노출되는, 공용으로 설정 가능한 모든 비정적 비추상 속성은 같은 이름의 해당 특성을 Task 요소에 설정하면 프로젝트 파일에서 액세스할 수 있습니다.

ITask 인터페이스를 구현하는 관리되는 클래스를 작성하여 자신만의 작업을 작성할 수 있습니다. 자세한 내용은 방법: 작업 작성를 참조하십시오.

프로젝트 파일의 작업 실행

프로젝트 파일의 작업을 실행하기 전에 먼저 작업을 구현하는 어셈블리의 형식을 UsingTask 요소를 사용하여 작업 이름에 매핑해야 합니다. 그러면 MSBuild에서 프로젝트 파일에 작업이 있을 때 해당 작업의 실행 논리를 찾을 위치를 알 수 있습니다.

MSBuild 프로젝트 파일의 작업을 실행하려면 작업 이름이 포함된 요소를 Target 요소의 자식으로 만듭니다. 작업에서 매개 변수를 허용하면 이러한 매개 변수는 요소의 특성으로 전달됩니다.

MSBuild 항목 컬렉션과 속성을 매개 변수로 사용할 수 있습니다. 예를 들어, 다음 코드에서는 MakeDir 작업을 호출하고 MakeDir 개체의 Directories 속성 값을 앞의 예제에서 선언한 BuildDir 속성 값과 같게 설정합니다.

<Target Name="MakeBuildDirectory">
    <MakeDir
        Directories="$(BuildDir)" />
</Target>

작업은 또한 프로젝트 파일로 정보를 반환할 수 있으며, 이러한 정보는 나중에 사용할 수 있도록 항목이나 속성에 저장될 수 있습니다. 예를 들어, 다음 코드에서는 Copy 작업을 호출하고 CopiedFiles 출력 속성의 정보를 SuccessfullyCopiedFiles 항목 컬렉션에 저장합니다.

<Target Name="CopyFiles">
    <Copy
        SourceFiles="@(MySourceFiles)"
        DestinationFolder="@(MyDestFolder)">
        <Output
            TaskParameter="CopiedFiles"
            ItemName="SuccessfullyCopiedFiles"/>
     </Copy>
</Target>

포함된 작업

MSBuild에는 파일을 복사하는 Copy, 디렉터리를 만드는 MakeDir, Visual C# 소스 코드 파일을 컴파일하는 Csc 등 많은 작업이 제공됩니다. 사용할 수 있는 작업 및 사용법 정보에 대한 전체 목록은 MSBuild 작업 참조를 참조하십시오.

참고 항목

작업

방법: 작업 작성

개념

MSBuild 개요

기타 리소스

MSBuild 개념