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

如何用Azure Pipelines在同一仓库构建不同项目并生成独立产物

解决Azure Pipelines中独立构建Web API与后台服务产物的问题

完全可以实现你的需求,问题出在Publish步骤的publishWebProjects配置上。

当你设置publishWebProjects: True时,DotNetCoreCLI@2任务会忽略你指定的projects参数,自动扫描整个仓库里的所有Web项目(通过识别web.config、Startup.cs这类特征文件),这就是为什么你的服务产物里会混入Web API内容,反之亦然。

修改方案

把两条流水线的Publish步骤里的publishWebProjects改成False,让任务严格按照你指定的projects路径发布目标项目:

修改后的API流水线Publish步骤

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    publishWebProjects: False  # 关键修改
    projects: $(BuildParameters.RestoreBuildProjects)
    arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)
    zipAfterPublish: True

修改后的后台服务流水线Publish步骤

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    publishWebProjects: False  # 关键修改
    projects: $(BuildParameters.RestoreBuildProjects)
    arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)
    zipAfterPublish: True
    workingDirectory: MyServices

额外注意事项

  • 检查项目引用:确保Web API项目和后台服务项目之间没有互相引用,公共库的引用是单向且必要的,避免构建时自动带入无关内容。
  • 你的Restore、Build步骤配置是正确的,指定$(BuildParameters.RestoreBuildProjects)只会处理目标项目及其依赖的公共库,不会构建无关项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:35:45