Azure devops 如何使用PublishPipelineArtifact@1使用构建脚本

Azure devops 如何使用PublishPipelineArtifact@1使用构建脚本,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我已经让我的yaml运行我的构建(这是一个伪脚本),我想将构建脚本的各种输出作为工件发布 我已经让它工作了一半,但我不知道如何得到一些特定的文件夹输出 - task: PublishPipelineArtifact@1 displayName: Publish Report inputs: pathToPublish: $(System.DefaultWorkingDirectory)/s/ReportProject/bin/Release/netcoreapp3

我已经让我的yaml运行我的构建(这是一个伪脚本),我想将构建脚本的各种输出作为工件发布

我已经让它工作了一半,但我不知道如何得到一些特定的文件夹输出

  - task: PublishPipelineArtifact@1
    displayName: Publish Report
    inputs:
      pathToPublish: $(System.DefaultWorkingDirectory)/s/ReportProject/bin/Release/netcoreapp3.1
      artifactName: MyReport
它实际上似乎是采取一些任意文件夹(这是我的管道名称,下面是子文件夹)

是的,我的应用程序在里面,但所有东西都在里面,非常奇怪


我改变路径…它发布相同的东西,即所有东西

我在azure devops中使用了yaml工具,似乎就是这样做的

  - task: PublishPipelineArtifact@1
    displayName: Publish Report
    inputs:
      targetPath: '$(Pipeline.Workspace)/s/ReportProject/bin/Release/netcoreapp3.1'
      artifact: 'MyReport'
      publishLocation: 'pipeline'
这是可行的,我并不特别喜欢知道代理将存储库放在一个名为“s”的文件夹中,但除此之外,它是可行的


这同样有效

  targetPath: 'ReportProject/bin/Release/netcoreapp3.1'
(我试图使Build.sources目录工作,但失败)

当您使用引用生成代理中的文件夹时。您应该知道它们映射到的确切文件夹。请参见以下自托管代理的示例:

$(Pipeline.Workspace)
映射到
c:\agent\\u work\1

$(Agent.BuildDirectory)
也映射到
c:\Agent\\u work\1

$(Build.ArtifactStagingDirectory)
映射到
a
文件夹
c:\agent\\u work\1\a

$(Build.BinariesDirectory)
映射到
b
文件夹
c:\agent\\u work\1\b

$(Build.SourcesDirectory)
与映射到
s
文件夹
c:\agent\\u work\1\s

PublishPipelineArtifact任务和其他任务的默认工作目录是
$(System.DefaultWorkingDirectory)
(即
c:\agent\\u work\1\s

因为您的项目文件夹位于
s
文件夹下的文件夹
ReportProject
。这就是为什么
targetPath:'ReportProject/bin/Release/netcoreapp3.1'
起作用的原因。因为它等于
$(System.DefaultWorkingDirectory)/ReportProject/bin/Release/netcoreapp3.1
,并且
$(Pipeline.Workspace)/s/ReportProject/bin/Release/netcoreapp3.1
,以及
$(Build.sourcesddirectory)/ReportProject/bin/Release/netcoreapp3.1
。这些都可以使用。

通过使用
Build.sources目录
您应该可以获得包含“s”文件夹的路径(请参阅)似乎对我不起作用##[错误]路径不存在:D:\a\1\s\$(PipelineBuild.SourcesDirectory)\bin\Release\netcoreapp3.1
  targetPath: 'ReportProject/bin/Release/netcoreapp3.1'