You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps构建流水线中获取指定项目的构建输出目录?

解决方案

以下是三种可以完全避免硬编码路径的方案,优先推荐前两种实现成本更低、稳定性更高:


方案1:构建时显式指定输出目录(最推荐)

你可以在执行dotnet build命令时,针对指定的集成测试项目单独加--output(简写-o)参数,把构建产物输出到固定的统一路径,完全不需要关心项目本身的默认输出规则:

- task: DotNetCoreCLI@2
  displayName: 'dotnet build $(buildConfiguration)'
  inputs:
    command: 'build'
    arguments: '--configuration $(buildConfiguration) /tests/IntergationTests/IntegrationTests.csproj -o $(Build.ArtifactStagingDirectory)/IntegrationTests'

之后发布任务直接引用这个输出路径即可:

- task: PublishBuildArtifacts@1
  displayName: 'Publish integration tests artifacts'
  inputs:
    pathtoPublish: '$(Build.ArtifactStagingDirectory)/IntegrationTests'
    artifactName: 'IntegrationTests'

如果你的构建任务需要同时构建整个解决方案,不想单独拆分测试项目的构建,也可以给全局build命令加-o参数把所有项目的输出都放到统一目录,之后按项目名筛选对应产物即可。


方案2:单独针对测试项目执行dotnet publish命令

如果你的核心需求是拿到可直接运行的测试项目产物,更推荐直接用publish命令替代单独build+找路径的流程,publish会自动把所有运行依赖都打包输出,更适合发布构建产物的场景:

- task: DotNetCoreCLI@2
  displayName: 'Publish integration tests project'
  inputs:
    command: 'publish'
    projects: '/tests/IntergationTests/IntegrationTests.csproj'
    arguments: '--configuration $(buildConfiguration) -o $(Build.ArtifactStagingDirectory)/IntegrationTests'
    publishWebProjects: false # 重点:非Web项目必须设置为false,否则任务会自动跳过该项目

后续发布任务和方案1一致,直接引用指定的输出路径即可。


方案3:通过MSBuild属性获取默认输出路径(不修改现有构建流程)

如果不想修改原有构建逻辑,也可以在构建后通过MSBuild命令查询项目的输出路径并存到变量中使用,避免硬编码:

- task: PowerShell@2
  displayName: 'Get integration tests output path'
  inputs:
    targetType: 'inline'
    script: |
      $outputPath = dotnet msbuild /tests/IntergationTests/IntegrationTests.csproj /t:GetTargetPath /p:Configuration=$(buildConfiguration) /nologo /v:q
      Write-Host "##vso[task.setvariable variable=IntegrationTestsOutputPath]$outputPath"

之后发布任务直接引用变量即可:

- task: PublishBuildArtifacts@1
  displayName: 'Publish integration tests artifacts'
  inputs:
    pathtoPublish: '$(IntegrationTestsOutputPath)'
    artifactName: 'IntegrationTests'

内容的提问来源于stack exchange,提问作者Liero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:36:06