我在我的构建脚本中有这样一行代码
<Target Name="Deploy" DependsOnTargets="ServicesInstall;SitesTransfer" >
我想知道在这个例子中,目标将按什么顺序执行。此外,如果ServiceInstall有依赖关系,它们会在SiteTransfer之前还是之后执行?换句话说,执行是按深度优先还是广度优先方式进行的?
谢谢,
Sachin
我在我的构建脚本中有这样一行代码
<Target Name="Deploy" DependsOnTargets="ServicesInstall;SitesTransfer" >
作为一个实验,我尝试了这个:
<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仅保证满足您指定的约束条件。如果您需要确保在执行ServicesInstall
之前执行SitesTransfer
及其依赖项,则应使ServicesInstall
依赖于SitesTransfer
。