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

Azure YAML流水线:Zip制品发布下载及OneBranch转换后报错排查

问题解决指南

一、修复「Microsoft.WebApplication.targets 找不到」错误

该错误源于你的Web项目基于**.NET Framework**(非ASP.NET Core),而DotNetCoreCLI@2依赖的.NET Core SDK不包含旧式Web项目所需的Microsoft.WebApplication.targets文件。解决方法:

  • 替换DotNetCoreCLI@2为MSBuild@1任务,MSBuild会加载Visual Studio相关目标文件:
    - task: MSBuild@1
      displayName: Publish Web Solution
      inputs:
        solution: '{solutionpath}'
        msbuildArguments: '/p:Configuration=Release /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(REPOROOT)/obartifacts"'
    
  • 确保流水线代理已安装ASP.NET和Web开发工作负载(OneBranch默认代理已包含,自定义代理需手动安装)。

二、生成并发布Zip格式制品

当前配置存在两个核心问题导致无法看到Zip文件:

  1. 路径格式异常:YAML中建议使用正斜杠路径$(REPOROOT)/obartifacts,避免Windows风格反斜杠的转义问题;同时移除arguments中的单引号,防止解析错误。
  2. 缺少制品上传步骤:生成的Zip文件仅存于代理本地目录,需显式发布到Azure DevOps制品库。

针对.NET Framework项目的完整配置

- task: MSBuild@1
  displayName: Publish Web Solution
  inputs:
    solution: '{solutionpath}'
    msbuildArguments: '/p:Configuration=Release /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(REPOROOT)/obartifacts"'

- task: PublishBuildArtifacts@1
  displayName: Publish Zip Artifact
  inputs:
    PathtoPublish: '$(REPOROOT)/obartifacts'
    ArtifactName: 'WebPackage'
    publishLocation: 'Container'

针对ASP.NET Core项目的完整配置

如果你的项目是ASP.NET Core,修正DotNetCoreCLI@2配置并添加制品发布步骤:

- task: DotNetCoreCLI@2
  displayName: Publish Web Solution
  inputs:
    command: 'publish'
    publishWebProjects: false
    projects: '{solutionpath}'
    arguments: '--configuration Release --output $(REPOROOT)/obartifacts'
    zipAfterPublish: true
    modifyOutputPath: false

- task: PublishBuildArtifacts@1
  displayName: Publish Zip Artifact
  inputs:
    PathtoPublish: '$(REPOROOT)/obartifacts'
    ArtifactName: 'WebPackage'
    publishLocation: 'Container'

关键提示

  • zipAfterPublish: true仅对ASP.NET Core项目生效,.NET Framework项目需通过MSBuild的PackageAsSingleFile=true参数生成Zip包。
  • 必须添加PublishBuildArtifacts@1任务,否则无法在Azure DevOps制品库中看到并下载Zip文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:24:51