0
我的MSBuild目標文件包含以下部分:是否可以在MSBuild的目標實現中引用目標的元數據?
<ItemGroup>
<Targets Include="T1">
<Project>A\B.sln"</Project>
<DependsOnTargets>The targets T1 depends on</DependsOnTargets>
</Targets>
<Targets Include="T2">
<Project>C\D.csproj"</Project>
<DependsOnTargets>The targets T2 depends on</DependsOnTargets>
</Targets>
...
</ItemGroup>
<Target Name="T1" DependsOnTargets="The targets T1 depends on">
<MSBuild Projects="A\B.sln" Properties="Configuration=$(Configuration)" />
</Target>
<Target Name="T2" DependsOnTargets="The targets T2 depends on">
<MSBuild Projects="C\D.csproj" Properties="Configuration=$(Configuration)" />
</Target>
正如你所看到的,A\B.sln
出現了兩次:
- 作爲
Project
在ItemGroup
區間元的T1
。 - 在
Target
聲明本身傳遞給MSBuild
任務。
我想知道我是否可以刪除第二個實例,並與參考目標,該名稱是考慮到Target
任務的Project
元更換呢?
對於(Targets.DependsOnTargets)
元數據詢問完全相同的問題。它提到了兩次,就像%(Targets.Project)
元數據一樣。
謝謝。
編輯:
我也許應該說明的約束,必須由解決方案滿足:
- 我希望能夠建立個別項目提供方便。今天我可以簡單地執行
msbuild file.proj /t:T1
來構建T1目標,我希望保持這個能力。 - 我想強調的是,有些項目依賴於其他項目,所以
DependsOnTargets
屬性對他們來說確實是必需的。
嗨,感謝您的及時回覆。我修改了我的問題來澄清幾點。順便說一下,我已經在使用你建議的乾淨目標的結構,因爲我通常會清理所有的項目。但是我需要能夠構建單個項目,並且我不明白您的解決方案如何讓我這樣做,更不用說它會忽略依賴關係。 – mark 2009-12-13 20:01:58