我在应用程序中使用SharpSvn库。作为自动化集成测试的一部分,我创建了一个测试存储库,签出一个工作副本,执行一些测试,然后删除存储库和工作副本文件夹。
然而,一个简单的Directory.Delete(workingCopyPath, true);
总是产生一个UnauthorizedAccessException
带有消息“访问路径'条目'被拒绝。 ”。我可以用这段代码重现错误:
using (var svnClient = new SvnClient())
{
svnClient.CheckOut(
new SvnUriTarget(new Uri(repositoryPath)), workingCopyPath);
}
Directory.Delete(workingCopyPath, true);
如果我仍然会出现此错误
- 尝试删除由先前运行的集成测试创建的工作副本
Thread.Sleep
尝试删除前几秒钟
如果我使用资源管理器手动删除临时工作副本,我不会收到任何错误。
这里出了什么问题?以编程方式删除颠覆工作副本的正确方法是什么?