UsingTask 要素 (MSBuild)

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

<Project><UsingTask>

構文

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

Note

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

属性と要素

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

属性

属性 説明
Architecture 省略可能な属性です。

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

サポートされる値は、x86 (32 ビット)、x64 (64 ビット)、CurrentArchitecture、および * (任意のアーキテクチャ) です。
AssemblyName AssemblyName 属性と AssemblyFile 属性のどちらかが必要です。

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

AssemblyFile 属性が使用されている場合、この属性は使用できません。
AssemblyFile AssemblyNameAssemblyFile 属性のどちらかが必要です。

アセンブリのファイル パス。 この属性は、完全パスまたは相対パスを受け取ります。 相対パスは、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 以降)、CurrentRuntime、および * (任意のランタイム) です。 .NET Framework (CLR4) MSBuild を実行しているときに NET のタスクを呼び出すことや、.NET MSBuild から (dotnet build を実行しているときに) CLR2/CLR4 のタスクを呼び出すことはできないのでご注意ください。
TaskFactory 省略可能な属性です。

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

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

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

子要素

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

親要素

要素 説明
プロジェクト MSBuild プロジェクト ファイルの必須のルート要素です。

Remarks

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

注意

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

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

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

例 1

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

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

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

例 2

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

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

関連項目