ожидает завершения удаления MSBuild - PullRequest
5 голосов
/ 04 февраля 2012

Я использую MSBuild и имею задачу Удалить, которая удаляет все файлы в каталоге. Следующая задача очищает каталог любой папки с помощью RemoveDir. У меня проблема с синхронизацией, когда каталог не всегда полностью очищается от файлов из команды Delete до запуска команды RemoveDir. Происходит примерно половина времени, и когда он выдает ошибки скрипта, b / c RemoveDir не может удалить каталоги, для которых существуют файлы.

Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

4 голосов
/ 04 февраля 2012

Убедитесь, что вы вызываете задачу RemoveDir после запуска действия Delete с помощью DependsOnTargets:

<Target Name="RemoveDirectories" DependsOnTargets="DeleteFiles">
  <RemoveDir Directories="@(DirsToRemove)" />
</Target>

Однако вполне вероятно, что время не является реальной проблемой здесь. Возможно, проблема заключается в том, что DeleteFiles не удается удалить некоторые заблокированные или доступные только для чтения файлы, что в результате не позволяет выполнить задачу RemoveDir. В этом случае рассмотрите возможность использования класса Папки пакета расширений MSBuild , который может принудительно удалить все файлы.

<MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" Path="@(DirsToRemove)" Force="true" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...