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

Desktop Bridge应用对接Azure通知中心WNS时找不到System.Runtime.WindowsRuntime文件

我之前帮朋友排查过一模一样的问题,这个System.Runtime.WindowsRuntime找不到的错误在Desktop Bridge(也就是现在的MSIX打包应用)里挺常见的,多半是依赖配置或者打包环节出了问题,给你几个实用的解决方向:

解决Desktop Bridge应用WNS注册时的程序集加载异常
  • 检查项目框架与NuGet依赖
    首先确认你的项目目标框架是.NET Framework 4.6.2及以上(Desktop Bridge对.NET Framework的最低要求是4.6.2)。然后手动补充依赖:

    1. 右键项目 → 管理NuGet程序包
    2. 搜索并安装System.Runtime.WindowsRuntime包(选和你框架匹配的版本,4.6.2对应4.0.10版本左右即可)
    3. 找到项目引用里的System.Runtime.WindowsRuntime,右键→属性,把复制本地设置为True
  • 添加程序集绑定重定向
    版本不匹配是常见诱因,在app.config的<runtime>节点里添加绑定重定向,强制指向正确版本:

    <runtime>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.WindowsRuntime" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
      </dependentAssembly>
    </runtime>
    
  • 核对MSIX打包配置
    如果你用MSIX打包项目,要确保依赖项完整:

    1. 打开打包项目的Package.appxmanifest
    2. 切换到「依赖项」标签,确认已添加Microsoft.VCLibs和对应版本的.NET Framework依赖(比如Microsoft.NET.Native.Framework.2.2)
    3. 主应用项目要确保已经关联打包配置(右键主项目→发布→创建应用包,按向导完成配置即可)
  • 确保程序集被打包进MSIX
    有时候引用正确但打包时漏了文件,需要检查:

    1. 右键System.Runtime.WindowsRuntime引用→属性
    2. 把「复制到输出目录」设为「始终复制」
    3. 重新构建打包,用7-Zip打开MSIX包,确认System.Runtime.WindowsRuntime.dll在应用目录里
  • 用UI线程调度UWP API调用
    WNS注册相关的UWP API需要在UI线程执行,线程上下文不对也可能间接引发加载异常,试试用Dispatcher调度:

    await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        async () =>
        {
            // 这里放你的WNS注册逻辑
            var pushChannel = await Windows.Networking.PushNotifications.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
            // 后续向Azure Notification Hub注册的代码
        });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:53:21