Azure devops VSTS\TFS 2017发布定义无法在';处创建发布工件目录;C:\Agents\DA#u CID22\r1\a';

Azure devops VSTS\TFS 2017发布定义无法在';处创建发布工件目录;C:\Agents\DA#u CID22\r1\a';,azure-devops,azure-pipelines-release-pipeline,azure-pipelines-build-task,build-agent,Azure Devops,Azure Pipelines Release Pipeline,Azure Pipelines Build Task,Build Agent,最近,我的一个发布定义遇到了这个错误,我不知道为什么会发生这种情况 我尝试手动删除r1目录中的文件夹,但未能删除“a”文件夹,即工件目录,并表示其中的文件夹或文件已在其他程序中打开。但令人震惊的是,“a”文件夹是空的,甚至没有隐藏的文件和文件夹 作为一种解决方法,为了使该版本成功部署,每当我想要部署新版本时,我都必须重新启动服务器。这真的很烦人 下面是我在发布定义摘要中得到的完整错误 错误(2)  下载工件失败: Microsoft.VisualStudio.Services.Agent.Wo

最近,我的一个发布定义遇到了这个错误,我不知道为什么会发生这种情况

我尝试手动删除r1目录中的文件夹,但未能删除“a”文件夹,即工件目录,并表示其中的文件夹或文件已在其他程序中打开。但令人震惊的是,“a”文件夹是空的,甚至没有隐藏的文件和文件夹

作为一种解决方法,为了使该版本成功部署,每当我想要部署新版本时,我都必须重新启动服务器。这真的很烦人

下面是我在发布定义摘要中得到的完整错误

错误(2)

 下载工件失败: Microsoft.VisualStudio.Services.Agent.Worker.Release.Artifacts.ArtifactDirectoryCreationFailedException: 未能创建发布项目目录“C:\Agents\DA\u CID22\r1\a”。 --->System.IO.IOException:进程无法访问文件“\?\C:\Agents\DA\u CID22\r1\a”,因为另一个进程正在使用该文件 过程位于System.IO.Win32FileSystem.RemoveDirectoryHelper(字符串 完整路径、布尔递归、布尔throwOnTopLevelDirectoryNotFound) 位于System.IO.Win32FileSystem.RemoveDirectory(字符串完整路径,布尔值 递归)在 Microsoft.VisualStudio.Services.Agent.Util.IOUtil.DeleteDirectory(字符串 路径,布尔contentsOnly,布尔continueOnContentDeleteError, 取消令牌(取消令牌)位于 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseFileSystemManager.EnsureEmptyDirectory(字符串 directoryPath,CancellationToken CancellationToken)--内部的结束 异常堆栈跟踪---在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseFileSystemManager.EnsureEmptyDirectory(字符串 目录路径,CancellationToken CancellationToken)位于 Microsoft.VisualStudio.Services.Agent.Worker.Release.RetryExecutor.Execute(操作 行动)在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.CreateArtifactsFolder(IExecutionContext executionContext,字符串artifactsWorkingFolder)位于 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.d_u34.MoveNext() ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()位于 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension.d_u31.MoveNext()

 未能创建发布项目目录 'C:\Agents\DA\u CID22\r1\a'


任何帮助或建议都会非常有用。

这种情况时有发生……我花了几天时间试图找出一个简单的解决方案(所有您尝试过的解决方案,我自己也尝试过),但需要重新启动私人代理。我的结论是,代理进程不知何故挂起了artifactwindows文件夹。你可以在类似的程序中看到这一点。这里没有一个简单的解决方案…有时您必须杀死未正确释放该文件的罪魁祸首进程,或者如果您幸运地使用前面提到的工具释放该文件的文件句柄…

您能给我们介绍一下发布定义中的步骤吗?希望其中一个进程保存在目录本身上吗?您是否在禁用所有步骤的情况下对其进行了测试?@Rob Bos,是的,我在该版本定义中有20个步骤,我在其中禁用了19个步骤,我正在测试其中的一个PowerShell步骤。此版本定义中的步骤\任务类似于启动\停止服务、启动\停止IIS、部署一些代码和执行PowerShell脚本。@Rob Bos,我在尝试重新部署代码时,在所有版本定义中都面临着这个问题。即使对于包含一个任务的发布定义,这种情况也会发生。我不知道使用它的过程是什么。只是想再次检查一下:你使用的是私人代理吗?检查过杀毒软件之类的吗?也许在这个旁边安装一个新的代理,看看是否有同样的问题?@Rob Bos,作为一种解决方法,我也尝试过。我安装了新的代理,但仍然存在相同的问题。这也发生在我们身上。我只是重新启动服务器。最好知道锁定目录的原因/原因。根据需要使用PowerShell
获取SMBONEFILE
然后
关闭SMBONEFILE
。要访问生成服务器,可以使用“Enter PsSession”并运行上述命令。