MSBuild 작업MSBuild Tasks

빌드 플랫폼에는 빌드 프로세스 중에 동작을 필요한 수만큼 실행할 수 있는 기능이 필요합니다.A build platform needs the ability to execute any number of actions during the build process. MSBuildMSBuild에서는 작업을 통해 이러한 동작을 수행합니다. uses tasks to perform these actions. 작업은 MSBuildMSBuild에서 원자성 빌드 작업을 수행하는 데 사용하는 실행 코드 단위입니다.A task is a unit of executable code used by MSBuildMSBuild to perform atomic build operations.

작업 논리Task Logic

MSBuildMSBuild XML 프로젝트 파일 형식은 빌드 작업을 자체적으로 완전히 실행할 수 없으므로 프로젝트 파일 외부에서 작업 논리를 구현해야 합니다.The MSBuildMSBuild XML project file format cannot fully execute build operations on its own, so task logic must be implemented outside of the project file.

작업의 실행 논리는 ITask 인터페이스를 구현하는 .NET 클래스로 구현됩니다. 이 인터페이스는 Microsoft.Build.Framework 네임스페이스에서 정의됩니다.The execution logic of a task is implemented as a .NET class that implements the ITask interface, which is defined in the Microsoft.Build.Framework namespace.

또한 작업 클래스는 프로젝트 파일에서 작업에 사용 가능한 입력 및 출력 매개 변수를 정의합니다.The task class also defines the input and output parameters available to the task in the project file. 이름이 같은 해당 특성을 작업 요소에 배치하면 작업 클래스가 표시하는 설정 가능한 모든 공용 비정적/비추상 속성에 액세스할 수 있습니다.All public settable non-static non-abstract properties exposed by the task class can be accessed in the project file by placing a corresponding attribute with the same name on the Task element.

ITask 인터페이스를 구현하는 관리되는 클래스를 만들어 자체의 작업을 작성할 수 있습니다.You can write your own task by authoring a managed class that implements the ITask interface. 자세한 내용은 작업 작성을 참조하세요.For more information, see Task Writing.

프로젝트 파일에서 작업 실행Executing a Task from a Project File

프로젝트 파일에서 작업을 실행하기 전에 먼저 UsingTask 요소를 사용하여 작업을 구현하는 어셈블리의 형식을 작업 이름에 매핑해야 합니다.Before executing a task in your project file, you must first map the type in the assembly that implements the task to the task name with the UsingTask element. 그러면 MSBuildMSBuild가 프로젝트 파일에서 작업을 찾을 때 작업의 실행 논리를 찾을 위치를 알 수 있습니다.This lets MSBuildMSBuild know where to look for the execution logic of your task when it finds it in your project file.

MSBuildMSBuild 프로젝트 파일에서 작업을 실행하려면 작업 이름을 포함하는 요소를 Target 요소의 자식으로 만듭니다.To execute a task in an MSBuildMSBuild project file, create an element with the name of the task as a child of a Target element. 작업이 매개 변수를 수락하면 해당 매개 변수가 요소의 특성으로 전달됩니다.If a task accepts parameters, these are passed as attributes of the element.

MSBuildMSBuild 항목 목록 및 속성을 매개 변수로 사용할 수 있습니다. item lists and properties can be used as parameters. 예를 들어 다음 코드는 MakeDir 작업을 호출하고 MakeDir 개체의 Directories 속성값을 이전 예제에서 선언한 BuildDir 속성값과 동일하게 설정합니다.For example, the following code calls the MakeDir task and sets the value of the Directories property of the MakeDir object equal to the value of the BuildDir property declared in the previous example.

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

작업은 프로젝트 파일에 정보를 반환할 수도 있으며, 나중에 사용하기 위해 항목이나 속성에 이 정보를 저장할 수 있습니다.Tasks can also return information to the project file, which can be stored in items or properties for later use. 예를 들어 다음 코드는 Copy 작업을 호출하고 CopiedFiles 출력 속성의 정보를 SuccessfullyCopiedFiles 항목 목록에 저장합니다.For example, the following code calls the Copy task and stores the information from the CopiedFiles output property in the SuccessfullyCopiedFiles item list.

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

포함된 작업Included Tasks

MSBuildMSBuild에는 파일을 복사하는 Copy, 디렉터리를 만드는 MakeDir, Visual C#Visual C# 소스 코드 파일을 컴파일하는 Csc, 등의 여러 작업이 포함되어 있습니다. ships with many tasks such as Copy, which copies files, MakeDir, which creates directories, and Csc, which compiles Visual C#Visual C# source code files. 사용 가능한 작업 및 사용법 정보의 전체 목록은 작업 참조를 참조하세요.For a complete list of available tasks and usage information, see Task Reference.

재정의된 작업Overridden Tasks

MSBuildMSBuild는 여러 위치에서 작업을 찾습니다. looks for tasks in several locations. 첫 번째 위치는 .NET Framework 디렉터리에 저장된 확장명이 .OverrideTasks인 파일입니다.The first location is in files with the extension .OverrideTasks stored in the .NET Framework directories. 이러한 파일의 작업은 프로젝트 파일의 작업을 비롯하여 이름이 동일한 다른 작업을 재정의합니다.Tasks in these files override any other tasks with the same names, including tasks in the project file. 두 번째 위치는 .NET Framework 디렉터리의 확장명이 .Tasks인 파일입니다.The second location is in files with the extension .Tasks in the .NET Framework directories. 이러한 위치 중 하나에 작업이 없으면 프로젝트 파일의 작업을 사용합니다.If the task is not found in either of these locations, the task in the project file is used.

참고 항목See Also

MSBuild 개념 MSBuild Concepts
MSBuild MSBuild
작업 작성 Task Writing
인라인 작업Inline Tasks