3

ビルドスクリプトにこの行があります

<Target Name="Deploy" DependsOnTargets="ServicesInstall;SitesTransfer" >

私が知りたいのは、この例では、ターゲットが実行される順序です。また、ServiceInstall に依存関係がある場合、それらは SiteTransfer の前または後に実行されますか。言い換えれば、実行は深さ優先または幅優先の方法で行われますか?

ありがとう、

サチン

4

1 に答える 1

4

実験として、私はこれを試しました:

<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を作成する必要があります。ServicesInstallSitesTransfer

于 2012-05-24T22:13:32.397 に答える