Target 項目 (MSBuild)
更新:2007 年 11 月
包含 MSBuild 會依序執行的一組工作。
<Target Name="Target Name" DependsOnTargets="DependentTarget" Inputs="Inputs" Outputs="Outputs" Condition="'String A' == 'String B'"> <Task>... </Task> <OnError... /> </Target>
屬性和項目
下列小節將說明屬性 (Attribute)、子項目和父項目。
屬性
屬性 |
描述 |
---|---|
Name |
必要的屬性。 目標 (Target) 的名稱。 |
DependsOnTargets |
選擇性屬性。 在能夠執行此目標,或者開始最上層相依性的分析之前,所必須執行的目標。分號會分隔多個目標。 |
Inputs |
選擇性屬性。 此目標的項目輸入。此屬性內的項目,用來做為最上層相依性分析的輸入。 |
Outputs |
選擇性屬性。 此目標的預期輸出。您可以將轉換套用至輸入項目以產生輸出項目。如需轉換的詳細資訊,請參閱 MSBuild 轉換。 |
Condition |
選擇性屬性。 要評估的條件。如果條件評估為 false,目標就不會執行目標的主體,或是 DependsOnTargets 屬性中設定的任何目標。如需條件的詳細資訊,請參閱 MSBuild 條件。 |
子項目
項目 |
描述 |
---|---|
建立並執行 MSBuild 工作的執行個體。目標中可能含有零或多個工作。 |
|
如果失敗的工作之 ContinueOnError 屬性為 false,便會執行一或多個目標。目標中可能有零或多個 OnError 項目。如果有 OnError 項目的話,這些項目必須是 Target 項目中的最後項目。 |
父項目
項目 |
描述 |
---|---|
MSBuild 專案檔的必要根項目。 |
備註
第一個要執行的目標是在執行階段指定。目標可以對其他目標具有相依性。例如,部署的目標可以相依於編譯 (Compilation) 的目標。MSBuild 引擎以相依性出現在 DependsOnTargets 屬性中的順序,從左至右執行這些相依性。如需詳細資訊,請參閱 MSBuild 目標。
在建置期間一個目標只能執行一次,即使有一個以上的目標對此目標具有相依性亦是如此。
即使由於目標的 Condition 屬性評估為 false 而略過該目標,如果之後在建置時叫用 (Invoke) 該目標,而且其 Condition 屬性在那時評估為 true,就依然會執行該目標。
範例
在下列程式碼範例中,示範了執行 Csc 工作的 Target 項目。
<Target Name="Compile" DependsOnTarget="Resources" >
<Csc Sources="@(CSFile)"
TargetType="library"
Resources="@(CompiledResources)"
EmitDebugInformation="$(includeDebugInformation)"
References="@(Reference)"
DebugType="$(debuggingType)" >
<Output TaskParameter="OutputAssembly"
ItemName="FinalAssemblyName" />
</Csc>
</Target>