2015-03-11 2 views
0

Одна из моих MsBuild целей работает следующим образом: файлы конфигурацииWait для Exec задачи, чтобы закончить

  1. получить обслуживание окна
  2. начать с этими файлами конфигурации
  3. Exec службы конкретной задачи
  4. остановка окна обслуживание
  5. повтор

проблема в том, что иногда остановка выполнения служебной задачи службы (Exec Command = «sc stop myservice») занимает больше времени, а при вызове «sc start myservice» говорится, что служба уже запущена. Поэтому мой вопрос: как я могу ждать команды «exec» и заканчивать? Я попытался поместить каждый исполняемый файл в цель и позвонить с помощью «CallTarget» и поставить соответствующие «DependsOnTargets» или «AfterTargets», и это не сработало. Вы можете мне помочь? Заранее спасибо.

+1

'Exec' * действительно ждать *, пока команда не будет завершена – stijn

+0

проблемы была, что Exec на самом деле выполнение законченных команд (он просто выброшен«подкожно остановка MyService»), после чего другого Exec начал работать. Я добавил тайм-аут для «sc start myservice» на минуту, и он решил. – Array

+0

Значит, проблема была не в Exec, а скорее в 'sc'? – stijn

ответ

0

Проблема заключалась в том, что Exec фактически завершил выполнение команды (он просто бросил «sc stop myservice»), после чего другой exec начал работать. Я добавил тайм-аут для «sc start myservice» на минуту, и он решил. Результат выглядел как:

<Exec Command="sc stop myservice" ContinueOnError="true" /> 
<Exec Command="sc start myservice" ContinueOnError="true" Timeout="60000" /> 
+0

Таймаут не повлиял на меня вообще! – Tobias

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