次の方法で共有


UsingTask 要素 (MSBuild)

Task 要素で参照されているタスクを、 タスク 実装を含むアセンブリにマップします。

<Project><UsingTask>

構文

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

プロパティや項目とは異なり、TaskNameに適用される最初UsingTask要素が使用されます。タスクをオーバーライドするには、既存のUsingTaskより前に新しいを定義するか、新しいUsingTaskOverride="true"を指定する必要があります。

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

Attributes

特性 Description
Architecture 省略可能な属性です。

指定したビット数のプロセスでタスクを実行する必要があることを指定します。 現在のプロセスが要件を満たしていない場合、タスクは実行するタスク ホスト プロセスで実行されます。

サポートされる値は、 x86 (32 ビット)、 x64 (64 ビット)、 CurrentArchitecture* (任意のアーキテクチャ) です。
AssemblyName AssemblyName属性またはAssemblyFile属性が必要です。

読み込むアセンブリの名前。 AssemblyName属性は厳密な名前付きアセンブリを受け入れますが、厳密な名前付けは必要ありません。 この属性の使用は、.NET で Load メソッドを使用してアセンブリを読み込むのと同じです。

AssemblyFile属性が使用されている場合は、この属性を使用できません。
AssemblyFile AssemblyNameまたはAssemblyFile属性が必要です。

アセンブリのファイル パス。 この属性は、完全パスまたは相対パスを受け入れます。 相対パスは、 UsingTask 要素が宣言されているプロジェクト ファイルまたはターゲット ファイルのディレクトリに対する相対パスです。 この属性の使用は、.NET で LoadFrom メソッドを使用してアセンブリを読み込むのと同じです。

AssemblyName属性が使用されている場合は、この属性を使用できません。
Override 省略可能な属性です。

この UsingTask 要素は、同じタスク名を定義する他の要素よりも高い優先度にする必要があることを指定します。 タスク名ごとに 1 つのオーバーライドのみが許可されます。 MSBuild 17.2 で追加されました。
Runtime 省略可能な属性です。

指定したバージョンの .NET Framework ランタイムでタスクを実行する必要があることを指定します。 現在のプロセスが要件を満たしていない場合、タスクは実行するタスク ホスト プロセスで実行されます。

サポートされる値は、'NET' (.NET Core および .NET 5 以降)、 CLR2 (.NET Framework 3.5)、 CLR4 (.NET Framework 4.7.2 以降)、 CurrentRuntimeNET (.NET 10 以降)、 * (任意のランタイム) です。 NETランタイム タスクは、MSBuild 18.0 (Visual Studio 2026 以降) または .NET SDK 10 以降を使用している場合にのみ .NET Framework MSBuild を実行していて、.NET MSBuild から CLR2/CLR4 タスクを呼び出すことはできません (dotnet buildの実行時)。
TaskFactory 省略可能な属性です。

指定した Task 名のインスタンスを生成するアセンブリ内のクラスを指定します。 ユーザーは、タスク ファクトリが受け取り、タスクの生成に使用する子要素として Task を指定することもできます。 Taskの内容は、タスク ファクトリに固有です。 既定の TaskFactoryAssemblyTaskFactoryであり、実行中のプロセスにタスクが読み込まれます。
TaskName 必須の属性です。

アセンブリから参照するタスクの名前。 あいまいさが可能な場合、この属性は常に完全な名前空間を指定する必要があります。 あいまいさがある場合、MSBuild は任意の一致を選択し、予期しない結果が発生する可能性があります。
Condition 省略可能な属性です。

評価する条件。 詳細については、「条件」を参照してください。

子要素

要素 Description
ParameterGroup 指定した TaskFactoryによって生成されるタスクに表示されるパラメーターのセット。
タスク タスクのインスタンスを生成するために TaskFactory に渡されるデータ。

親要素

要素 Description
プロジェクト MSBuild プロジェクト ファイルの必須ルート要素。

注釈

環境変数、コマンド ライン プロパティ、プロジェクト レベルのプロパティ、およびプロジェクト レベルの項目は、プロジェクト ファイルに含まれる UsingTask 要素で直接参照することも、インポートしたプロジェクト ファイルを介して参照することもできます。 詳細については、「タスクの」を参照してください。

UsingTask要素が MSBuild エンジンにグローバルに登録されている .tasks ファイルの 1 つから取得されている場合、プロジェクト レベルのプロパティと項目は意味がありません。 プロジェクト レベルの値は MSBuild に対してグローバルではありません。

MSBuild 4.0 では、 .overridetask ファイルからタスクを読み込むことができます。

カスタム タスクを含むアセンブリは、 Task が最初に使用されるときに読み込まれます。

例 1

次の例は、AssemblyFile属性で UsingTask 要素を使用する方法を示しています。

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

RuntimeまたはTaskHostが指定されていないため、タスクは MSBuild プロセスで、特定のビルドで実行されるランタイムとアーキテクチャで実行されます。

例 2

次の例は、AssemblyName属性と、そのアセンブリで定義されたカスタム TaskFactoryUsingTask要素を使用する方法を示しています。

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

こちらも参照ください