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

Blazor WASM DevOps CI流水线:如何单独发布指定UI项目

修复Azure DevOps CI流水线同时发布两个Blazor WASM项目的耗时问题

核心问题原因

当前的DotNetCoreCLI发布任务通过通配符**/EventManagement.UI.csproj匹配到了两个项目,同时触发发布,叠加Blazor WASM本身的程序集优化(尤其是AOT编译),导致整体耗时剧增。

具体修复步骤

  1. 拆分发布任务,为每个项目单独配置
    放弃通配符匹配,明确指定每个项目的具体路径,同时禁用自动检测Web项目的功能,避免误触发。修改后的流水线代码如下:
variables:
  buildConfiguration: 'Release'
  buildVersion: 1.0.$(Build.BuildId)
  framework: net7.0

# 发布私有前端项目
- task: DotNetCoreCLI@2
  displayName: 'Dotnet Publish FrontendPrivate'
  inputs:  
    command: publish
    projects: '**/FrontendPrivate/EventManagement.UI.csproj'
    publishWebProjects: false
    arguments: '-c $(buildConfiguration) -f $(framework) -o $(Build.ArtifactStagingDirectory)/FrontendPrivate'

# 发布公共前端项目
- task: DotNetCoreCLI@2
  displayName: 'Dotnet Publish FrontendPublic'
  inputs:  
    command: publish
    projects: '**/FrontendPublic/EventManagement.UI.csproj'
    publishWebProjects: false
    arguments: '-c $(buildConfiguration) -f $(framework) -o $(Build.ArtifactStagingDirectory)/FrontendPublic'
  • 用具体路径替代通配符,确保每个任务只处理一个项目
  • 设置publishWebProjects: false,防止任务自动扫描并发布所有Web项目
  • 分别输出到不同的子目录,方便后续生成独立的工件
  1. 优化Blazor WASM发布耗时(可选但效果显著)
  • 关闭非必要的AOT编译:如果项目没有强制要求运行时性能,可在项目文件中移除<RunAOTCompilation>true</RunAOTCompilation>配置,AOT编译会大幅增加发布时间
  • 启用并行任务:在Azure DevOps中将两个发布任务设置为并行执行(可通过任务组或阶段配置并行),利用多资源同时处理两个项目
  • 依赖缓存:单独配置DotNetCoreCLI的restore任务,启用Azure DevOps的缓存功能,减少重复下载依赖的时间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:42:49