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

使用Azure DevOps CI构建WinUI3应用包无产物生成问题

解决WinUI3项目Azure CI未生成应用包构件的问题

WinUI3项目和原生UWP项目的打包逻辑存在差异,直接复用UWP的YAML配置容易出问题,给你几个排查和修复的方向:

1. 瞄准正确的打包项目

WinUI3通常会搭配一个单独的**.wapproj打包项目**,而非直接用应用项目打包。你需要在YAML中指定这个打包项目,而非App项目本身:

- task: MSBuild@1
  inputs:
    solution: '**/你的WinUI3打包项目名.wapproj'
    msbuildArguments: '/p:Configuration=Release /p:Platform=x64 /p:AppxPackageDir="$(Build.ArtifactStagingDirectory)\AppxPackages\" /p:UapAppxPackageBuildMode=StoreUpload /p:AppxBundle=Always /p:AppxBundlePlatforms="x64"'

注意UapAppxPackageBuildMode参数:发布商店设为StoreUpload,旁加载用SideloadOnly。

2. 调整构件发布路径

UWP的包输出路径和WinUI3不同,WinUI3打包后的文件都在AppxPackages子目录下,发布构件时要指向这个路径:

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)\AppxPackages'
    ArtifactName: 'WinUI3AppPackages'
    publishLocation: 'Container'

3. 补全WinUI3专属MSBuild参数

别遗漏WinUI3打包必需的属性:

  • 加上/p:AppxPackage=true确保触发打包流程
  • 如果是单项目打包(无单独wapproj),要指定/p:WindowsPackageType=MSIX,不能用默认的None

4. 给CI代理安装WinUI3依赖

Azure默认代理可能未预装Windows App SDK相关组件,需添加安装步骤:

- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '6.x' # 匹配项目使用的.NET版本
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      winget install Microsoft.WindowsAppRuntime --silent

5. 查看CI日志定位具体问题

如果以上步骤无效,直接去Azure CI的任务日志中搜索AppxPackage或MSBuild相关报错:

  • 若提示找不到打包项目,检查路径通配符是否匹配正确(比如**/*.wapproj能否定位到你的项目)
  • 若出现编译错误,优先解决项目本身的编译问题,再排查打包流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:01:02