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

运行WindowsAppSDK推送通知示例时遇winrt::hresult_class_not_registered错误

解决WindowsAppSDK推送通知示例中PushNotificationManager::Default()的CLASS_NOT_REGISTERED异常
  • 确认未打包应用的WindowsAppSDK运行时初始化顺序
    未打包应用必须先完成WindowsAppSDK运行时初始化,再调用PushNotificationManager::Default()。检查代码中是否在访问推送通知管理器前执行了初始化逻辑,确保调用顺序正确:

    auto initResult = Microsoft::WindowsAppSDK::Initialize();
    if (FAILED(initResult))
    {
        // 处理初始化失败,比如输出错误码
        return -1;
    }
    // 之后再调用 PushNotificationManager::Default()
    

    同时验证初始化返回的HRESULT是否成功,避免因初始化失败导致后续组件无法加载。

  • 匹配WindowsAppSDK运行时与NuGet包版本
    确保系统上安装的WindowsAppSDK运行时版本,与项目中引用的Microsoft.WindowsAppSDK NuGet包版本完全一致:

    1. 打开Visual Studio的NuGet包管理器,查看已安装的WindowsAppSDK包版本;
    2. 在Windows设置->应用->已安装应用中,找到“Windows App SDK Runtime”,确认版本与NuGet包匹配;
    3. 若版本不匹配,要么更新NuGet包到运行时对应版本,要么安装对应版本的WindowsAppSDK运行时。
  • 手动注册推送通知COM组件
    未打包应用无法自动注册所需COM组件,需手动执行注册:

    1. 以管理员身份打开命令提示符;
    2. 找到WindowsAppSDK运行时安装路径(通常在C:\Program Files\WindowsApps\Microsoft.WindowsAppSDK_[版本号]\[架构]下,替换[版本号]和[架构]为实际值,比如1.4.231008000\x64);
    3. 执行命令注册组件:
      regsvr32 "C:\Program Files\WindowsApps\Microsoft.WindowsAppSDK_1.4.231008000_x64__8wekyb3d8bbwe\PushNotificationManager.dll"
      

    确保命令执行无报错,若提示找不到文件,检查路径是否正确。

  • 验证目标系统与项目配置兼容性
    推送通知功能要求Windows 10 1903及以上或Windows 11系统,同时项目需正确配置目标平台:

    1. 右键项目->属性->常规,确认“Windows SDK版本”和“目标平台版本”设置为支持的系统版本;
    2. 检查测试系统的Windows版本是否满足要求,可通过winver命令查看。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:12:37