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

Azure DevOps发布流水线报错:未找到匹配指定模式的包

问题现象
  • 项目环境:Azure DevOps代码仓库托管的ASP.NET Core项目,构建流水线可正常完成项目编译,执行基于构建产物的发布流程时持续失败
  • 报错信息:

No package found with specified pattern.
Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.
中文释义:未找到匹配指定模式的包,请检查任务中引用的包是否已在构建阶段或前置阶段作为制品发布,并已在当前作业中完成下载

  • 报错截图:
    报错界面截图
现有配置

流水线YAML配置

# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
 branches:
   include:
   - release/*

pool:
  vmImage: 'windows-2022'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  projectName: '**/F11.Web.csproj'
  runtime: 'win-x64'

steps:
- task: UseDotNet@2
  displayName: 'Use .NET 5 SDK (preview)'
  inputs:
    packageType: 'sdk'
    version: '5.0.100-rc.1.20452.10'
    vsVersion: '16.8.0'
    includePreviewVersions: true

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '$(projectName)'
    feedsToUse: 'select'

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: '$(projectName)'
    arguments: '--no-restore'

- task: DotNetCoreCLI@2
  displayName: Test
  inputs:
    command: test
    projects: '$(projectName)'
    arguments: '-l "console;verbosity=detailed"'

- task: DotNetCoreCLI@2
  displayName: 'Publish WebApi'
  inputs:
    command: publish
    publishWebProjects: false
    projects: '$(projectName)'
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory) --runtime -r $(runtime)'

- task: CopyFiles@2
  inputs:
    Contents: '**'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Pipeline.Workspace)' 
    artifactName:  'PublishBuildArtifact'

相关配置截图

应用管理配置
Web App部署配置

问题根因与修复方案

现有配置存在4个明确问题,按优先级修复即可解决报错:

  • dotnet publish参数重复冲突:Publish步骤的arguments中同时传入了--runtime和-r两个完全等价的运行时指定参数,重复传参会导致publish命令执行异常,无法将发布产物正确输出到指定的$(Build.ArtifactStagingDirectory)目录。同时该步骤未指定--no-build参数,会重复执行编译流程,和前置Build步骤的配置可能出现不一致。
    修复方式:将Publish步骤的arguments修改为--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory) -r $(runtime) --no-build
  • Build步骤缺少编译配置参数:现有Build步骤的arguments仅传入--no-restore,未指定编译配置为Release,会默认编译Debug版本,和后续Publish步骤指定的Release配置不匹配。
    修复方式:将Build步骤的arguments修改为--no-restore --configuration $(BuildConfiguration)
  • CopyFiles任务配置无效:现有CopyFiles@2任务未指定SourceFolder参数,默认从工作区根目录全量复制文件,会引入大量无关文件,且和Publish步骤的输出路径重叠,属于冗余配置。
    修复方式:直接删除该CopyFiles任务即可,dotnet publish已经将所有需要部署的产物输出到了指定的制品暂存目录。
  • 制品发布路径错误:现有PublishPipelineArtifact@1任务的targetPath设置为$(Pipeline.Workspace)(整个流水线工作区根目录,包含源码、依赖缓存、临时文件等大量无关内容),未指向存放发布产物的$(Build.ArtifactStagingDirectory),导致后续发布任务无法匹配到正确的部署包。
    修复方式:将该任务的targetPath修改为$(Build.ArtifactStagingDirectory)。

额外校验项

如果使用独立的Release发布流水线而非构建阶段直接部署,还需要确认两点:

  1. 发布阶段的"下载流水线制品"步骤已正确关联构建流水线,且已勾选下载名为PublishBuildArtifact的制品
  2. Azure Web App部署任务中的"包或文件夹"匹配规则和实际产物路径一致,推荐设置为$(System.DefaultWorkingDirectory)/PublishBuildArtifact/**/*.zip(如果开启发布时自动zip打包)或$(System.DefaultWorkingDirectory)/PublishBuildArtifact/**(直接部署未压缩的发布目录)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:09:19