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

Azure DevOps发布失败:找不到指定模式Zip包求助

问题:Azure DevOps ASP.NET Core Web App部署报错找不到Zip包

我尝试参考相关方案解决问题但未成功。我的Azure DevOps仓库中有一个ASP.NET Core App Service(Web App),发布构建始终报错:

Error: No package found with specified pattern: D:\a\r1\a***.zip

我是App Services CI领域的新手,不确定YAML或CI构建中是否遗漏了步骤。我的YAML配置如下:

stages:
  - stage: SDL
    jobs:
    - job: SDLTools
      pool:
        name: Azure-Pipelines-EO-Windows2022-Office
      steps:
      - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
        condition: |
          and(
            eq(variables['Build.SourceBranchName'], 'main'),
            ne(variables['Build.Reason'], 'PullRequest')
          )
        displayName: 'Component Detection'
      - task: ArchiveFiles@2
        inputs:
          rootFolderOrFile: '$(Build.BinariesDirectory)'
          includeRootFolder: true
          archiveType: 'zip'
          archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
          replaceExistingArchive: true        
      - task: AzureRmWebAppDeployment@4
        inputs:
          ConnectionType: 'AzureRM'
          azureSubscription: 'Subscription'
          appType: 'webApp'
          WebAppName: 'MyWebAppName'
          package: '$(System.DefaultWorkingDirectory)/*.zip'
      - task: PublishBuildArtifacts@1

我看到归档已完成:

D:\a\_work\_tasks\ArchiveFiles_35346534345f\2.231.0\7zip\7z.exe a -tzip -mx=5 D:\a\_work\1\a\26395403.zip @D:\a\_work\_temp\v6pxdmipzc

但部署时失败,报错:

No package found with specified pattern: D:\a\_work\1\s\*.zip<br/>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

问题原因与修复方案

1. 核心问题:路径不匹配

你的ArchiveFiles@2任务把Zip包生成在了$(Build.ArtifactStagingDirectory)(对应实际路径D:\a\_work\1\a),但AzureRmWebAppDeployment@4任务指定的package路径是$(System.DefaultWorkingDirectory)/*.zip(对应实际路径D:\a\_work\1\s,即代码目录),两个路径完全不匹配,导致部署任务找不到包。

2. 直接修复步骤

修改AzureRmWebAppDeployment@4中的package参数,指向正确的归档路径:

package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'

或者用通配符匹配该目录下所有Zip包:

package: '$(Build.ArtifactStagingDirectory)/*.zip'

3. 额外优化建议

  • 确认$(Build.BinariesDirectory)包含Web App编译输出:如果该目录为空,生成的Zip包也会无效。对于ASP.NET Core项目,建议先添加发布任务:
    - task: DotNetCoreCLI@2
      displayName: '发布Web应用'
      inputs:
        command: 'publish'
        publishWebProjects: true
        arguments: '--configuration $(BuildConfiguration) --output $(Build.BinariesDirectory)'
        zipAfterPublish: false
    
  • 完善PublishBuildArtifacts@1任务参数,明确发布的工件信息:
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:14:55