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

UWP BLE示例添代码后部署报错:找不到System.Resources.ResourceSet

解决UWP BLE示例添加判断代码后出现的System.Resources.ResourceSet找不到错误

我来帮你拆解下这个问题——你遇到的这个编译错误,其实和你写的SupremeTest方法逻辑本身关系不大,反而大概率是项目的配置或环境缓存出了问题。下面是具体的排查和解决步骤:

可能的原因及修复方案

1. 目标UWP框架版本不匹配

UWP项目对.NET的API子集有严格的版本限制,如果你不小心改动了项目的目标框架版本,或者示例本身的版本和你当前开发环境不兼容,就可能触发这类找不到基础类的错误。

  • 修复步骤:
    • 右键你的UWP项目 → 选择属性
    • 切换到应用程序标签页
    • 确保目标版本和最小版本选择的是你开发环境支持的Windows 10/11版本(比如推荐选Windows 10 22H2,版本号19041及以上)

2. 缺失必要的程序集引用

System.Resources.ResourceSet属于.NET基础类库,但UWP的API子集需要明确引用相关框架程序集才可以正常使用:

  • 修复步骤:
    • 右键项目 → 选择添加 → 引用
    • 在弹出的引用管理器中,切换到通用Windows → 框架分类
    • 勾选System.Runtime和System.Resources相关的选项(如果没勾选的话),点击确定后重新生成项目

3. Visual Studio项目缓存异常

有时候VS的本地缓存会出现错乱,导致一些无厘头的编译错误,尤其是在修改代码或配置后:

  • 修复步骤:
    1. 点击菜单栏的生成 → 清理解决方案
    2. 手动删除项目根目录下的bin和obj文件夹
    3. 重启Visual Studio,然后重新生成并部署项目

顺便提下你代码里的小优化点

虽然这不是报错的原因,但你的SupremeTest方法不管条件是否满足都返回null,这应该不是你想要的逻辑吧?可以稍微调整下,比如:

private string SupremeTest(IBuffer buffer, GattPresentationFormat format) 
{ 
    byte[] data; 
    // 先判断buffer是否为空,避免空引用异常
    if (buffer == null || !CryptographicBuffer.CopyToByteArray(buffer, out data))
    {
        return "数据解析失败";
    }
    string receivedText = Encoding.UTF8.GetString(data).Trim(); // 去掉首尾空白,避免传输时的空格干扰
    if (receivedText == "Test") 
    { 
        return "匹配到目标文本"; 
    } 
    return "未匹配到目标文本"; 
}

内容的提问来源于stack exchange,提问作者Just some sailboat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:37:55