由于 adb.exe,构建服务无法删除 Android 项目文件夹
Build service cannot delete Android project folder because of adb.exe
我们正在我们的 TFS 构建服务器上构建一些 Xamarin 项目,并且不时看到以下错误:
Exception Message: The process cannot access the file
'D:\Builds592\Sources\Component\OurService.Android' because it
is being used by another process. (type IOException) Exception Stack
Trace: at
Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String
path, Boolean recursive, Boolean followJunctionPoints) at
Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String
path, Boolean recursive, Boolean followJunctionPoints) at
Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String
path, Boolean recursive, Boolean followJunctionPoints) at
Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext
context) at
System.Activities.CodeActivity.InternalExecute(ActivityInstance
instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at
System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor
executor, BookmarkManager bookmarkManager, Location resultLocation)
Inner Exception Details:
Exception Message: The process cannot access the file because it is
being used by another process (type Win32Exception)
它发生在清理工作区期间,它首先删除源目录并且仅针对 empty Android 项目文件夹。查看资源监视器,它显示它是 C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe,它保持对文件夹的锁定。锁定似乎会在一段时间后或通过重新启动服务器来释放。
我们正在使用 TFS 2015 Update 3 XAML 构建,构建服务器安装了 VS 2015 Update 3 和 Xamarin 4.2.2.6。我们在开发人员机器上没有发现本地问题,但这可能只是因为我们没有定期删除源文件夹。
关于如何解决这个问题有什么建议吗?
确保特定文件不是 Read-Only,并检查您的构建服务帐户是否具有足够的权限,例如 运行 作为本地管理员.
通常此类问题将通过 cleaning team foundation cache 在构建代理机器上解决。
这似乎已被一些 Xamarin 更新修复,因为我们已经有一段时间没有看到它了。
我们正在我们的 TFS 构建服务器上构建一些 Xamarin 项目,并且不时看到以下错误:
Exception Message: The process cannot access the file 'D:\Builds592\Sources\Component\OurService.Android' because it is being used by another process. (type IOException) Exception Stack Trace: at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints) at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints) at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints) at Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
Inner Exception Details:
Exception Message: The process cannot access the file because it is being used by another process (type Win32Exception)
它发生在清理工作区期间,它首先删除源目录并且仅针对 empty Android 项目文件夹。查看资源监视器,它显示它是 C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe,它保持对文件夹的锁定。锁定似乎会在一段时间后或通过重新启动服务器来释放。
我们正在使用 TFS 2015 Update 3 XAML 构建,构建服务器安装了 VS 2015 Update 3 和 Xamarin 4.2.2.6。我们在开发人员机器上没有发现本地问题,但这可能只是因为我们没有定期删除源文件夹。
关于如何解决这个问题有什么建议吗?
确保特定文件不是 Read-Only,并检查您的构建服务帐户是否具有足够的权限,例如 运行 作为本地管理员.
通常此类问题将通过 cleaning team foundation cache 在构建代理机器上解决。
这似乎已被一些 Xamarin 更新修复,因为我们已经有一段时间没有看到它了。