UsingTask 요소(MSBuild)

Task 요소에서 참조하는 작업을 작업의 구현이 포함된 어셈블리에 매핑합니다.

<Project><UsingTask>

Syntax

<UsingTask TaskName="TaskName"
    AssemblyName = "AssemblyName"
    TaskFactory = "ClassName"
    Condition="'String A'=='String B'" />

참고 항목

속성 및 항목과 달리, a에 TaskName 적용되는 첫 번째UsingTask 요소가 사용됩니다. 작업을 재정의하려면 기존 요소보다 먼저UsingTask 요소를 정의하거나 새 UsingTask요소를 지정 Override="true" 해야 합니다.

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성 설명
Architecture 선택적 특성입니다.

작업이 지정된 비트 수의 프로세스에서 실행되도록 지정합니다. 현재 프로세스가 요구 사항을 충족하지 않으면 작업이 요구 사항을 충족하는 작업 호스트 프로세스에서 실행됩니다.

지원되는 값은 x86(32비트), x64(64비트), CurrentArchitecture*(모든 아키텍처)입니다.
AssemblyName AssemblyName 특성 또는 AssemblyFile 특성이 필요합니다.

로드할 어셈블리의 이름입니다. AssemblyName 특성에서는 강력한 이름의 어셈블리를 허용하지만 필수적 요소는 아닙니다. 이 특성을 사용하면 .NET Framework에서 Load 메서드를 사용하여 어셈블리를 로드하는 것과 같은 결과를 얻을 수 있습니다.

AssemblyFile 특성을 사용하는 경우에는 이 특성을 사용할 수 없습니다.
AssemblyFile AssemblyName 또는 AssemblyFile 특성이 필요합니다.

어셈블리의 파일 경로입니다. 이 특성에는 전체 경로 또는 상대 경로를 모두 사용할 수 있습니다. 상대 경로는 UsingTask 요소가 선언된 대상 파일이나 프로젝트의 디렉터리를 기준으로 합니다. 이 특성을 사용하면 .NET Framework에서 LoadFrom 메서드를 사용하여 어셈블리를 로드하는 것과 같은 결과를 얻을 수 있습니다.

AssemblyName 특성을 사용하는 경우에는 이 특성을 사용할 수 없습니다.
Override 선택적 특성입니다.

UsingTask 요소는 동일한 작업 이름을 정의하는 다른 요소보다 우선 순위가 높아야 하며 작업 이름당 하나의 재정의만 허용됩니다. MSBuild 17.2에 추가되었습니다.
Runtime 선택적 특성입니다.

작업이 지정된 버전의 .NET Framework 런타임에서 실행되도록 지정합니다. 현재 프로세스가 요구 사항을 충족하지 않으면 작업이 요구 사항을 충족하는 작업 호스트 프로세스에서 실행됩니다.

지원되는 값은 'NET'(.NET Core 및 .NET 5 이상), CLR2(.NET Framework 3.5), CLR4(.NET Framework 4.7.2 이상), CurrentRuntime*(모든 런타임)입니다. .NET Framework(CLR4) MSBuild를 실행할 때는 NET 작업을 호출할 수 없으며 .NET MSBuild에서 CLR2/CLR4 작업을 호출할 수 없습니다(dotnet build를 실행 중인 경우).
TaskFactory 선택적 특성입니다.

지정된 Task 이름의 인스턴스 생성을 담당하는 어셈블리에 클래스를 지정합니다. 사용자는 또한 작업 팩터리가 수신해서 작업을 생성하는 데 사용하는 하위 요소로 Task를 지정할 수 있습니다. Task의 내용은 작업 팩터리에만 해당합니다. 기본값 TaskFactoryAssemblyTaskFactory실행 중인 프로세스에 태스크를 로드하는 것입니다.
TaskName 필수 특성입니다.

어셈블리에서 참조할 작업의 이름입니다. 모호성이 발생할 가능성이 있으면 이 특성에 항상 전체 네임스페이스를 지정해야 합니다. 모호성이 있으면 MSBuild에서는 일치하는 임의의 항목을 선택하므로 예기치 않은 결과가 발생할 수 있습니다.
Condition 선택적 특성입니다.

평가할 조건입니다. 자세한 내용은 조건을 참조하세요.

자식 요소

요소 설명
ParameterGroup 지정된 TaskFactory에서 생성한 작업에 나타나는 매개 변수 집합입니다.
Task 작업의 인스턴스를 생성하기 위해 TaskFactory로 전달되는 데이터입니다.

부모 요소

요소 Description
프로젝트 MSBuild 프로젝트 파일의 필수 루트 요소입니다.

설명

환경 변수, 명령줄 속성, 프로젝트 수준 속성 및 프로젝트 수준 항목은 직접 또는 가져온 프로젝트 파일을 통해 프로젝트 파일에 포함된 UsingTask 요소에서 참조할 수 있습니다. 자세한 내용은 작업을 참조하세요.

참고

MSBuild 엔진을 통해 전역으로 등록된 .tasks 파일 중 하나에서 UsingTask 요소를 가져오는 경우 프로젝트 수준 속성 또는 항목에는 의미가 없습니다. 프로젝트 수준 값은 MSBuild에 대해 전역이 아닙니다.

MSBuild 4.0에서는 작업 사용을 .overridetask 파일에서 로드할 수 있습니다.

Task가 처음 사용되면 사용자 지정 작업이 포함된 어셈블리가 로드됩니다.

예 1

다음 예제에서는 AssemblyFile 특성에서 UsingTask 요소를 사용하는 방법을 보여 줍니다.

<UsingTask TaskName="Email"
           AssemblyFile="c:\myTasks\myTask.dll" />

지정된 빌드가 없거나 RuntimeTaskHost 지정되었으므로 지정된 빌드에 대해 실행되는 런타임 및 아키텍처에서 작업이 MSBuild 프로세스를 실행합니다.

예제 2

다음 예제에서는 특성 및 해당 어셈블리에 UsingTask 정의 된 AssemblyName 사용자 지정 TaskFactory 요소를 사용 하는 방법을 보여 있습니다.

<UsingTask TaskName="MyTask" AssemblyName="My.Assembly" TaskFactory="MyTaskFactory">
       <ParameterGroup>
              <Parameter1 ParameterType="System.String" Required="False" Output="False"/>
              <Parameter2 ParameterType="System.Int" Required="True" Output="False"/>
              ...
</ParameterGroup>
       <Task>
      ... Task factory-specific data ...
       </Task>
</UsingTask>

참고 항목