UsingTask 要素 (MSBuild)
Task 要素で参照されているタスクを、タスクの実装が含まれているアセンブリにマップします。
<Project><UsingTask>
構文
<UsingTask TaskName="TaskName"
AssemblyName = "AssemblyName"
TaskFactory = "ClassName"
Condition="'String A'=='String B'" />
Note
プロパティやアイテムとは異なり、TaskName
に適用される first UsingTask
要素が使用されます。タスクをオーバーライドするには、新しいUsingTask
を定義既存のを定義するか、新しいUsingTask
でOverride="true"
を指定する必要があります。
属性と要素
以降のセクションでは、属性、子要素、および親要素について説明します。
属性
属性 | 説明 |
---|---|
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 以降)、CurrentRuntime 、および * (任意のランタイム) です。 .NET Framework (CLR4) MSBuild を実行しているときに NET のタスクを呼び出すことや、.NET MSBuild から (dotnet build を実行しているときに) CLR2/CLR4 のタスクを呼び出すことはできないのでご注意ください。 |
TaskFactory |
省略可能な属性です。 指定された Task 名のインスタンスの生成を担うアセンブリ内のクラスを指定します。 ユーザーは、タスク ファクトリが受信してタスクの生成に使用する子要素として、Task を指定することもできます。 Task の内容は、タスク ファクトリに固有のものです。 既定値の TaskFactory は AssemblyTaskFactory で、実行中のプロセスにタスクを読み込みます。 |
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>