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的本地缓存会出现错乱,导致一些无厘头的编译错误,尤其是在修改代码或配置后:
- 修复步骤:
- 点击菜单栏的生成 → 清理解决方案
- 手动删除项目根目录下的
bin和obj文件夹 - 重启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
相关产品推荐
相关产品推荐

