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

Azure Pipelines中Asp.Net项目PublishBuildArtifacts任务如何避免压缩产物

.Net Core - 发布产物任务

以下代码会在drop文件夹中生成发布产物,但输出格式为zip文件,且该任务仅适用于.Net Core项目。

- task: DotNetCoreCLI@2
  displayName: 'dotnet publish'
  inputs:
    command: 'publish'
    publishWebProjects: false
    projects: 'src/myproj/*.csproj'
    arguments: -o $(build.artifactStagingDirectory)

如果我们在inputs中添加zipAfterPublish: false属性,即可避免产物被压缩。


Asp.Net - 发布产物任务

以下是上述场景对应的Asp.Net版本发布任务代码:

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: '$(Parameters.ArtifactName)'
  condition: succeededOrFailed()

我们可以在.Net Core场景下避免产物被压缩,但Asp.Net版本的发布任务没有对应的可配置属性。请问如何在Asp.Net版本的Publish Artifact任务中避免产物被压缩?


解答

PublishBuildArtifacts@1 任务本身仅负责将指定路径的文件原样上传为流水线产物,不会主动对文件做压缩处理。你看到的产物为zip格式,是因为此前ASP.NET项目的构建步骤默认配置了生成压缩部署包,修改构建阶段的MSBuild参数即可解决,操作如下:

  • 找到流水线中负责构建ASP.NET项目的VSBuild@1或MSBuild@1任务,修改其msbuildArgs参数配置,示例如下:
- task: VSBuild@1
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(Build.ArtifactStagingDirectory)" /p:DeployDefaultTarget=WebPublish'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
  • 参数调整说明:
    • 将WebPublishMethod从默认值Package修改为FileSystem,构建时就会直接输出零散的站点文件而非zip包
    • publishUrl指定生成的未压缩站点文件直接输出到构建暂存目录,后续PublishBuildArtifacts@1任务会直接上传这些未压缩文件,不会生成zip格式产物。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:08