【问题标题】:Build service cannot delete Android project folder because of adb.exe由于 adb.exe,构建服务无法删除 Android 项目文件夹
【发布时间】:2017-08-11 16:41:11
【问题描述】:

我们正在 TFS 构建服务器上构建一些 Xamarin 项目,并且不时看到以下错误:

异常消息:进程无法访问文件 'D:\Builds\135\1892\Sources\Component\OurService.Android' 因为它 正在被另一个进程使用。 (类型 IOException)异常堆栈 追踪:在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(字符串 路径,布尔递归,布尔跟随节点)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(字符串 路径,布尔递归,布尔跟随节点)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(字符串 路径,布尔递归,布尔跟随节点)在 Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext 上下文)在 System.Activity.CodeActivity.InternalExecute(ActivityInstance 实例,ActivityExecutor 执行器,BookmarkManager 书签管理器) 在 System.Activity.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

内部异常详情:

异常消息:进程无法访问该文件,因为它是 被另一个进程使用(类型 Win32Exception)

它发生在干净的工作区中,它从删除源目录开始,并且仅适用于 empty Android 项目文件夹。查看资源监视器,它显示它是 C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe,它保持对文件夹的锁定。锁定似乎在一段时间后或通过重新启动服务器被释放。

我们正在使用 TFS 2015 Update 3 XAML 构建,构建服务器安装了 Xamarin 4.2.2.6 的 VS 2015 Update 3。我们在开发人员计算机上本地没有发现任何问题,但这可能只是因为我们没有定期删除源文件夹。

关于如何解决此问题的任何建议?

【问题讨论】:

    标签: tfs xamarin.android tfsbuild


    【解决方案1】:

    确保特定文件不是只读,并检查您的构建服务帐户是否具有足够的权限,例如以本地管理员身份运行。

    通常此类问题将通过在构建代理机器上清理团队基础缓存来解决。

    【讨论】:

    • 感谢您的建议!该文件夹(不是文件)是只读的,因为它是源文件,并且 adb.exe 阻止了删除,而不是其只读属性。我可以尝试清理缓存,但如果 adb.exe 阻止文件夹,我看不出它会如何影响。
    【解决方案2】:

    这似乎已通过一些 Xamarin 更新修复,因为我们已经有一段时间没有看到它了。

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 2020-01-12
      • 2012-08-13
      相关资源
      最近更新 更多