Azure devops 我可以从Azure Devops获得WPF应用程序的下载链接吗

Azure devops 我可以从Azure Devops获得WPF应用程序的下载链接吗,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我正在开发一个Windows WPF应用程序,我已经为它在Azure Devops中建立了一个构建管道。我的问题是,在成功完成构建之后,我似乎无法找到任何方法来下载工件 是否可能以某种方式获得包含所有构建文件的zip的链接。我怎样才能得到我的文件?我不想发布到NPM或NuGet或类似的东西,现在就下载到我的桌面上 谢谢 编辑:这是我的构建配置 trigger: - master pr: - master pool: vmImage: 'VS2017-Win2016' variables

我正在开发一个Windows WPF应用程序,我已经为它在Azure Devops中建立了一个构建管道。我的问题是,在成功完成构建之后,我似乎无法找到任何方法来下载工件

是否可能以某种方式获得包含所有构建文件的zip的链接。我怎样才能得到我的文件?我不想发布到NPM或NuGet或类似的东西,现在就下载到我的桌面上

谢谢

编辑:这是我的构建配置

trigger:
- master

pr:
- master

pool:
  vmImage: 'VS2017-Win2016'

variables:
  solution: '**/*.sln'
  buildPlatform: 'x64'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@0
  displayName: 'NuGet Tool Installer'

- task: NuGetCommand@2
  displayName: 'Restore NuGet dependencies'
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  displayName: 'Build $(buildConfiguration) $(buildPlatform)'
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  displayName: 'Copy files'
  inputs:
    Contents: '_buildOutput\\**\\*.dll'
    TargetFolder: $(Build.ArtifactStagingDirectory)

- task: PublishBuildArtifacts@1
  displayName: 'Publishing artifact drop'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: 'drop'
    publishLocation: 'filePath'
    targetPath: '$(Build.ArtifactStagingDirectory)\\outdir\\$(Build.DefinitionName)\\$(Build.BuildNumber)'

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'current'
    downloadType: 'single'
    artifactName: 'drop'
    downloadPath: '$(System.ArtifactsDirectory)'
您可以使用两种方式:

  • 从生成结果复制下载链接:
  • 使用此示例中的链接() 您需要知道构建的Id

    然后,您可以使用此格式的下载链接(默认情况下用于drop):

    更新(如果使用yaml):

    如果您想处理构建结果并使用“工件”按钮,那么必须使用“发布工件”任务

    您可以将其发布到Azure DevOps(默认情况下):

    您还可以将结果发布到某些文件共享:

    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact: drop'
      inputs:
        PathtoPublish: 'Your folder with build results'
        publishLocation: FilePath
        TargetPath: '\\my\share\$(Build.DefinitionName)\$(Build.BuildNumber)'
    
    更新2:

    如果尝试使用以下格式下载:

    https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName=drop&api-version=5.0
    
    您将获得带有URL的json:

    您可以将“&%24format=zip”添加到url的末尾,并获得一个zip文件:

    更新3

    这是我的yaml构建定义中从标准构建转换而来的部分:

    - task: CopyFiles@2
      displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
      inputs:
        SourceFolder: '$(build.sourcesdirectory)'
        Contents: '**\bin\$(buildConfiguration)\**'
        TargetFolder: '$(build.artifactstagingdirectory)'
    
    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact: drop'
      inputs:
        PathtoPublish: '$(build.artifactstagingdirectory)'
    

    您是否参考了REST API文档以了解构建工件?您可以使用DownloadBuildArtifacts进行发布,而构建定义不需要它。1。我好像没有“人工制品”按钮。我正在查看管道->构建页面。2.我在哪里可以找到工件名?其他的我都认识。但是如果没有artifactName,它就不起作用了。谢谢我想我可能已经发现了一些有用的东西:是的,您必须使用发布工件任务来查看构建结果上的工件按钮。我已经更新了我的答案。太好了!我正在进步。但我只是在尝试从浏览器下载时得到一个json响应。。。是因为我没有正确设置内容类型,还是缺少其他内容?请尝试将&%24format=zip添加到您的url。我已经更新了答案。
    https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName=drop&api-version=5.0
    
    - task: CopyFiles@2
      displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
      inputs:
        SourceFolder: '$(build.sourcesdirectory)'
        Contents: '**\bin\$(buildConfiguration)\**'
        TargetFolder: '$(build.artifactstagingdirectory)'
    
    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact: drop'
      inputs:
        PathtoPublish: '$(build.artifactstagingdirectory)'