tar 在 Windows 代理上的 Azure Pipelines 中失败并显示 "Cannot connect to D: resolve failed"

tar in Azure Pipelines on Windows agent fails with "Cannot connect to D: resolve failed"

我对 Azure Pipelines 上的 Windows 代理(生成工作人员)收到的错误感到困惑。此任务失败:

      - task: PowerShell@2
        displayName: 'Unpack source tarball'
        inputs:
          targetType: 'inline'
          script: |
            Set-PSDebug -Trace 1
            tar -zxf $(Pipeline.Workspace)\objconv-$(o.version).tar.gz

使用此输出:

DEBUG:    3+  >>>> tar -zxf D:\a\objconv-2.51.tar.gz
tar (child): Cannot connect to D: resolve failed

gzip: stdin: unexpected end of file
/usr/bin/tar: Child returned status 128
/usr/bin/tar: Error is not recoverable: exiting now

"D:\a" 是 $(Pipeline.Workspace) 变量的扩展。我怀疑某种 Unix 软件未完全移植到 Windows 的问题,因为 tar 似乎将自己标识为“/usr/bin/tar” 而不是,我不知道, "C:\Windows\PowerShell-Components\tar.exe", 但除此之外我一无所获。

"Cannot connect to D: resolve failed" 到底是什么意思,我该如何解决这个任务?

(完整的 azure-pipelines.yml 在此处可见:https://bitbucket.org/elwoz/objconv/src/trunk/azure-pipelines.yml

我建议使用 Extract Files 任务而不是自己动手。我希望您看到 tar 期望 Unix 样式路径但无法处理 Windows 样式路径的问题。