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
相关产品推荐
相关产品推荐

