Share via


UsingTask 項目 (MSBuild)

Task 項目中參考的工作,對應至含有工作實作的組件。

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

屬性和項目

下列章節會說明屬性、子項目和父項目。

屬性

屬性

描述

AssemblyName

必須有 AssemblyName 屬性或 AssemblyFile 屬性。

要載入的組件名稱。 AssemblyName 屬性接受強式名稱 (Strong Name) 的組件 (雖然強式名稱不是必要的)。 使用這項屬性就等於使用 .NET Framework 中的 Load 方法載入組件。

如果已經使用 AssemblyFile 屬性,就不能使用這項屬性。

AssemblyFile

AssemblyNameAssemblyFile 屬性的其中一項是必要的。

組件的檔案路徑。 這項屬性接受完整路徑或相對路徑。 相對路徑是相對於宣告 UsingTask 項目所在專案檔或目標檔的目錄。 使用這項屬性就等於使用 .NET Framework 中的 LoadFrom 方法載入組件。

如果已經使用 AssemblyName 屬性,就不能使用這項屬性。

TaskFactory

選擇性屬性。

在負責產生指定 Task 名稱之執行個體的組件中指定類別。使用者還可以指定 TaskBody 做為工作 Factory 所接收並用於產生工作的子項目。 TaskBody 的內容是專屬於工作 Factory。

TaskName

必要屬性。

從組件參考的工作名稱。 如果有可能形成模糊狀態,這項屬性就應該一直指定完整命名空間。 如果形成模糊狀態,MSBuild 便會選擇任意符合項目,如此可能產生未預期的結果。

Condition

選擇性屬性。

要評估的條件。 如需詳細資訊,請參閱 MSBuild 條件

子項目

項目

描述

ParameterGroup

一組參數,這會在指定之 TaskFactory 所產生的工作上出現。

TaskBody

傳遞給用來產生工作執行個體之 TaskFactory 的資料。

父項目

項目

描述

專案

MSBuild 專案檔的必要根項目。

備註

如果 UsingTask 項目出現在專案檔中 (不論是明確出現或是透過匯入的專案檔出現),就能在該項目內的任何位置參考環境參數、命令列屬性和專案層級屬性。 如需詳細資訊,請參閱 MSBuild 工作

注意事項注意事項

如果 UsingTask 項目來自於以 MSBuild 引擎全域註冊的 .tasks 檔案之一,專案層級屬性就不具意義。專案層級屬性對 MSBuild 而言不是全域的。

在 MSBuild 4.0 中,可以從 .overridetask 檔載入使用工作。

範例

下列範例示範如何對 AssemblyName 屬性使用 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>
       <TaskBody>
      ... Task factory-specific data ...
       </TaskBody>
</UsingTask>

下列範例示範如何對 AssemblyFile 屬性使用 UsingTask 項目。

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

請參閱

概念

MSBuild 工作

MSBuild 專案檔案結構描述參考

其他資源

MSBuild 工作參考