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

WPF .NET Core 5.0应用无法调用Windows.Services.Store解决方案问询

解决方案
  • 首先修改你的WPF项目文件,保留目标框架配置为<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>,同时新增两个配置节点:
    <SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
    <RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
    
    该配置会把应用最低支持的系统版本降到Windows 7,同时保留对高版本WinRT API的引用权限,直接解决之前构建成功但无法启动的问题。
  • 移除你之前安装的Microsoft.Windows.SDK.Contracts和Microsoft.Windows.CsWinRT NuGet包,.NET 5+的带Windows版本后缀的TFM已经内置了WinRT API的调用支持,不需要额外安装这些包,反而会引发版本冲突。
  • 所有调用Windows.Services.Store相关接口的代码,都要先做操作系统版本判断,只有当系统版本高于等于Windows 10 1709(内部版本号16299)的时候才执行相关逻辑,Win7系统下直接跳过这部分功能,代码示例:
    if (Environment.OSVersion.Version >= new Version(10, 0, 16299, 0))
    {
        // 在这里写调用Windows.Services.Store的逻辑
    }
    else
    {
        // Win7或者低版本Win10下的降级逻辑,比如跳过内购、商店评级等功能
    }
    
  • 不需要把WPF项目转成UWP,直接使用Windows应用打包项目(MSIX)对你的现有WPF项目进行打包即可,打包时需要把应用的身份标识(包括发布者名称、应用ID)和你在微软合作伙伴中心注册的应用信息保持完全一致,否则Windows.Services.Store接口会调用失败。
  • 调试Windows.Services.Store相关逻辑时,不能直接启动WPF的exe调试,需要启动MSIX打包项目进行调试,或者将应用旁加载到系统并关联商店身份后再测试,直接运行裸exe无法获取到商店上下文,接口调用会返回错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:57:00