【发布时间】:2019-05-04 00:00:48
【问题描述】:
最近我的一个发布定义遇到了这个错误,我无法弄清楚为什么会发生这种情况。
我尝试手动删除 r1 目录中的文件夹,但无法删除“a”文件夹,即工件目录,并说其中的文件夹或文件已在另一个程序中打开。但令人震惊的是'a'文件夹是空的,甚至没有隐藏的文件和文件夹。
作为一种解决方法,为了使版本成功部署,每当我想要部署新版本时,我都必须重新启动服务器。这真的很烦人。
以下是我在发布定义摘要中得到的完整错误。
错误(二)
下载工件失败: Microsoft.VisualStudio.Services.Agent.Worker.Release.Artifacts.ArtifactDirectoryCreationFailedException: 无法创建发布工件目录“C:\Agents\DA_CID22\r1\a”。 ---> System.IO.IOException: 进程无法访问文件 '\?\C:\Agents\DA_CID22\r1\a' 因为它正在被另一个人使用 过程。在 System.IO.Win32FileSystem.RemoveDirectoryHelper(字符串 fullPath、布尔递归、布尔 throwOnTopLevelDirectoryNotFound) 在 System.IO.Win32FileSystem.RemoveDirectory(字符串 fullPath,布尔值 递归)在 Microsoft.VisualStudio.Services.Agent.Util.IOUtil.DeleteDirectory(字符串 路径,布尔值 contentsOnly,布尔值 continueOnContentDeleteError, CancellationToken 取消令牌)在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseFileSystemManager.EnsureEmptyDirectory(字符串 directoryPath, CancellationToken cancelToken) --- 内部结束 异常堆栈跟踪 --- 在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseFileSystemManager.EnsureEmptyDirectory(字符串 目录路径,CancellationToken 取消令牌)在 Microsoft.VisualStudio.Services.Agent.Worker.Release.RetryExecutor.Execute(操作 行动)在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.CreateArtifactsFolder(IExecutionContext executionContext, String artifactsWorkingFolder) 在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.d__34.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.d__31.MoveNext()
创建Release工件目录失败 'C:\Agents\DA_CID22\r1\a'。
任何帮助或建议都会很有帮助。
【问题讨论】:
-
您能给我们概述一下您的发布定义中的步骤吗?会期望其中一个进程保留在目录本身上吗?您是否在禁用所有步骤的情况下对其进行了测试?
-
@Rob Bos,是的,我在该版本定义中有 20 个步骤,我已禁用其中的 19 个步骤,我正在测试其中的一个 PowerShell 步骤。此版本定义中的步骤\任务类似于启动\停止服务、启动\停止 IIS、部署一些代码和执行 PowerShell 脚本。
-
@Rob Bos,当我尝试重新部署代码时,所有发布定义都面临这个问题。即使对于其中包含一项任务的发布定义,也会发生这种情况。使用它的过程我无法弄清楚。
-
只是为了仔细检查:您为此使用了私人代理?检查过防病毒软件之类的东西?也许在这个旁边安装一个新的代理,看看是否有同样的问题?
-
@Rob Bos,作为一种解决方法,我也尝试过。我安装了新代理,但仍然是同样的问题。
标签: azure-devops azure-pipelines-release-pipeline azure-pipelines-build-task build-agent