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

如何将WinUI3的MSIX Bundle发布至微软商店并解决上传报错

问题

将UWP应用迁移至WinUI3后,上传微软商店时遭遇以下问题:

  • 上传.msix包时,页面提示因此前已上传过.msixupload或.msixbundle,仅允许上传该类包
  • Visual Studio应用包向导仅生成.msix包,无法产出可用于商店上传的.msixupload或.msixbundle
  • 参考官方文档手动制作.msixbundle后,上传报错:[包名及版本].0.msixbundle的包文件格式无效: Exception from HRESULT: 0x80510007

项目.csproj核心配置如下:

<PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
    <TargetPlatformMinVersion>10.0.18362.0</TargetPlatformMinVersion>
    <ApplicationManifest>app.manifest</ApplicationManifest>
    <Platforms>x86;x64;arm64</Platforms>
    <RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
    <PublishProfile>win10-$(Platform).pubxml</PublishProfile>
    <UseWinUI>true</UseWinUI>
    <EnableMsixTooling>true</EnableMsixTooling>
    <GenerateTemporaryStoreCertificate>True</GenerateTemporaryStoreCertificate>
    <DefaultLanguage>en-us</DefaultLanguage>
    <AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
    <AppxBundle>Always</AppxBundle>
    <AppxBundlePlatforms>x86|x64</AppxBundlePlatforms>
    <AssemblyName>[App name]</AssemblyName>
    <UseAppLocalCoreFramework>true</UseAppLocalCoreFramework>
    <HoursBetweenUpdateChecks>1</HoursBetweenUpdateChecks>
    <AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>
    <GenerateAppInstallerFile>False</GenerateAppInstallerFile>
    <AppxSymbolPackageEnabled>True</AppxSymbolPackageEnabled>
    <GenerateTestArtifacts>True</GenerateTestArtifacts>
    <AppxPackageDir>[path]\App\AppPackages\</AppxPackageDir>
</PropertyGroup>

解决方案

1. 让Visual Studio自动生成合规的.msixbundle/.msixupload

  • 检查发布配置文件:项目指定了<PublishProfile>win10-$(Platform).pubxml</PublishProfile>,每个平台的.pubxml可能覆盖全局打包设置。打开对应平台的发布配置文件,确保未设置<AppxBundle>Never</AppxBundle>,若存在则改为<AppxBundle>Always</AppxBundle>,并添加<AppxBundlePlatforms>x86|x64</AppxBundlePlatforms>。
  • 使用正确的应用包创建流程:右键项目→发布→创建应用包,选择微软商店作为目标并登录开发者账号,勾选要打包的平台(x86、x64)及**生成应用包上传文件(.msixupload)**选项,完成向导后即可在输出目录获取包含.msixbundle的.msixupload压缩包,直接上传该文件即可。
  • 调整全局.csproj配置:移除<PublishProfile>win10-$(Platform).pubxml</PublishProfile>以避免平台配置覆盖全局规则;确保<AppxBundle>Always</AppxBundle>和<AppxBundlePlatforms>(按需设置x86|x64|arm64)配置正确。

2. 修复手动打包.msixbundle的0x80510007报错

该错误通常源于包签名或bundle结构不符合商店要求:

  • 使用商店发布证书签名:手动打包前,必须用从微软商店获取的发布证书为所有.msix包签名,禁止使用临时测试证书。
  • 确保包版本一致性:.msixbundle内的所有.msix包必须拥有完全一致的包名称、版本号和发布者信息,不能存在版本差异。
  • 使用官方工具打包:借助Windows SDK中的MakeAppx.exe(路径示例:C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64)执行打包命令,保证格式合规:
    MakeAppx.exe bundle /d "存放各平台msix包的目录" /p "输出的.msixbundle路径"
    

3. WinUI3项目示例参考

直接使用Visual Studio创建打包的WinUI 3桌面应用模板项目,该模板默认配置了正确的打包参数,可直接通过"创建应用包"向导生成符合商店要求的.msixupload文件。对比默认项目的.csproj配置,检查自身项目是否缺失关键设置(如<PackageCertificateKeyFile>指定商店证书)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:35:37