Несколько DependsOnTargets не выполняются
У меня есть задача сборки, над которой я работаю с использованием msbuild. В рамках задачи у меня есть несколько целей, некоторые из которых выполняют подготовительные работы.
Когда я выполняю "msbuild myEvent.msbuild /t:event3", событие запускается. Первое событие в DependsOnTargets выполняется, а второе событие в списке целей - нет. пример
<!-- only event1 will fire -->
<Target Name="event3" DependsOnTargets="event1; event2">
<Task TaskAction="myAction3"/>
</Target>
<Target Name="event1" DependsOnTargets="event4">
... do tasks here
</Target>
<Target Name="event2" >
... do tasks here
</Target>
<Target Name="event4" >
</Target>
Я попытался изменить это, исключив пробел в значениях DependsOnTargets. Я гарантирую, что у меня есть значения, разделенные точкой с запятой. Я пытался использовать BeforeTargets и AfterTargets без успеха.
Мой код msbuild предназначен для ToolsVersion 4.0.
Есть ли что-то, что мне не хватает, как работает DependsOnTargets?
РЕДАКТИРОВАТЬ
- Я думаю, что я понял свою проблему. MSBuild не позволяет мне выполнять одну и ту же цель более одного раза.
- В этом случае я должен сделать следующее
- запустить службу базы данных
- удалить базы данных
- остановить службу
- Извлеките некоторые файлы базы данных из zip-файла
- запустить службу базы данных
- Прикрепить базы данных
- Выполните дальнейшие действия с базами данных...
- Служба базы данных при первом запуске будет выполнена, а также удалит базы данных и остановит службу. Следующий вызов для запуска службы базы данных не выполняется.
1 ответ
Проблема была в том, что я относился к цели как к задаче; Я пытался уменьшить дубликат кода.
Как только цель выполняется, она никогда не выполняется снова. Итак, здесь необходимо понять, что является целью, а что является задачей.
В настоящее время я решил эту проблему, удалив цели, предназначенные для выполнения задач, и создав необходимые задачи, такие как запуск и остановка служб, в рамках правильных целей.