2012-05-21 2 views
3

У меня есть эта линия в моем сценарии сборкиMSBuild скрипт dependsOnTargets порядок исполнения

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

То, что я хочу знать, в этом примере, в каком порядке будут цели получить казнены. Кроме того, если ServiceInstall имеет зависимости, они выполняются до или после SiteTransfer. Другими словами, выполнение выполняется в глубину сначала или по ширине в первую очередь?

Спасибо,

SACHIN

ответ

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, вы должны сделать ServicesInstall в зависимости от SitesTransfer.

+7

От http://msdn.microsoft.com/en-us/library/t50z2hka.aspx: «Механизм MSBuild выполняет зависимости в том порядке, в котором они появляются в атрибуте DependsOnTargets, слева направо». –

+0

Вы также можете увидеть полезный заказ выполнения на странице http://msdn.microsoft.com/en-us/library/ms171462.aspx в заголовке «Целевой заказ сборки». – ExecutionOrder

Смежные вопросы