我的构建脚本中有这一行
<Target Name="Deploy" DependsOnTargets="ServicesInstall;SitesTransfer" >
我想知道的是,在这个例子中,目标的执行顺序是什么。此外,如果 ServiceInstall 具有依赖项,它们会在 SiteTransfer 之前还是之后执行。换句话说,执行是以深度优先还是广度优先的方式完成的?
谢谢,
萨钦
我的构建脚本中有这一行
<Target Name="Deploy" DependsOnTargets="ServicesInstall;SitesTransfer" >
我想知道的是,在这个例子中,目标的执行顺序是什么。此外,如果 ServiceInstall 具有依赖项,它们会在 SiteTransfer 之前还是之后执行。换句话说,执行是以深度优先还是广度优先的方式完成的?
谢谢,
萨钦
作为一个实验,我尝试了这个:
<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
makedepend on SitesTransfer
。