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

Azure DevOps DotNetCoreCLI Publish步骤指定解决方案发布不生效问题

问题根因

你的配置问题核心出在对Azure DevOps的DotNetCoreCLI@2任务的默认逻辑不熟悉:

  1. 该任务执行publish命令时,默认开启publishWebProjects: true配置,会自动扫描整个仓库根目录下所有Web类型项目执行发布,不受workingDirectory参数限制。
  2. 若未显式指定projects参数,任务默认会匹配**/*.csproj规则(所有目录下的C#项目文件),workingDirectory仅影响命令执行的工作上下文,不会限制项目匹配的扫描范围。
  3. 使用custom命令模式时,若不关闭默认的项目自动匹配逻辑,任务会自动将所有匹配到的项目路径追加到命令末尾,和你手动指定的src/Solution2路径产生冲突,因此触发Only one project can be specified报错。

解决方案

推荐方案(最稳定)

直接显式指定projects参数匹配目标解决方案/项目即可,无需额外设置workingDirectory:
如果Solution2目录下有独立的解决方案文件(.sln):

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    projects: 'src/Solution2/*.sln'
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'

如果没有单独的解决方案文件,直接匹配Solution2目录下所有项目:

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    projects: 'src/Solution2/**/*.csproj'
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'

自定义命令修复方案

如果要使用自定义命令模式,需要关闭默认的自动匹配Web项目的逻辑:

- task: DotNetCoreCLI@2
  displayName: 'Publish'
  inputs:
    command: custom
    custom: publish
    arguments: 'src/Solution2 --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    publishWebProjects: false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:36:04