Я использую библиотеку SharpSvn в приложении. В рамках моих автоматических тестов интеграции я создаю тестовый репозиторий, проверяю рабочую копию, выполняю некоторые тесты и удаляю как папки репозитория, так и рабочие папки.Невозможно программно удалить рабочую копию SVN
Однако простой Directory.Delete(workingCopyPath, true);
всегда дает UnauthorizedAccessException
с сообщением «доступа к пути„записи“отвергается.». Я могу воспроизвести ошибку с этим кодом:
using (var svnClient = new SvnClient())
{
svnClient.CheckOut(
new SvnUriTarget(new Uri(repositoryPath)), workingCopyPath);
}
Directory.Delete(workingCopyPath, true);
Эта ошибка возникает, если я
- попытка удалить рабочую копию, созданную по предыдущим пробеге интеграции тесты
Thread.Sleep
за несколько секунд до , пытающихся удалить
Если я использую проводник для ручного удаления временной рабочей копии, я не получаю никаких ошибок.
Что здесь общего не работает? Каков правильный способ программного удаления рабочей копии subversion?
Вероятно, один из ваших интеграции автоматизированных процессов тестирования имеет свой текущий каталог установлен в каталог в рабочей копии, или по-прежнему с помощью файла в копии. – 2009-12-30 20:16:47
Нет, поэтому я упоминаю, что я также не могу удалить рабочие копии, созданные * предыдущим * прогоном. Процессы предыдущего запуска больше не выполняются, поэтому я бы сказал, что он не может заблокировать какие-либо ресурсы. –