作爲一個實驗我嘗試這樣做:
<Target Name="Deploy" DependsOnTargets="ServicesInstall;SitesTransfer" />
<Target Name="ServicesInstall" DependsOnTargets="ServicesInstallDependency">
<Message Text="ServicesInstall" />
</Target>
<Target Name="ServicesInstallDependency">
<Message Text="ServicesInstallDependency" />
</Target>
<Target Name="SitesTransfer">
<Message Text="SitesTransfer" />
</Target>
,這是輸出:
...
1>ServicesInstallDependency:
1> ServicesInstallDependency
1>ServicesInstall:
1> ServicesInstall
1>SitesTransfer:
1> SitesTransfer
...
不過,我懷疑確切順序未定義。它沒有記錄在msdn上。
換句話說,msbuild只會保證您指定的約束條件得到滿足。如果您需要保證SitesTransfer
及其依賴關係在ServicesInstall
之前執行,則應使ServicesInstall
取決於SitesTransfer
。
From http://msdn.microsoft.com/en-us/library/t50z2hka.aspx:「MSBuild引擎按照它們出現在DependsOnTargets屬性中的順序執行依賴項,從左到右。」 –
您還可以在「目標構建訂單」標題下的http://msdn.microsoft.com/en-us/library/ms171462.aspx上看到有用的執行順序。 – ExecutionOrder