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,你应该ServicesInstallmakedepend on SitesTransfer

于 2012-05-24T22:13:32.397 回答