如何在.NET 5的C# Winforms应用中访问UWP设备并调用条码扫描功能
NU1202兼容性问题解决思路
错误 NU1202 Package System.Numerics.Vectors.WindowsRuntime 4.0.1 is not compatible with net5.0-windows7.0 (.NETCoreApp,Version=v5.0)。Package System.Numerics.Vectors.WindowsRuntime 4.0.1 supports: uap10.0 (UAP,Version=v10.0)
该报错的核心原因是System.Numerics.Vectors.WindowsRuntime属于UWP专属的运行时包,仅支持UAP平台,无法直接在.NET 5的Winforms桌面项目中运行。以下是可落地的解决方案:
- 调整项目目标框架启用WinRT API支持
右键Winforms项目选择「编辑项目文件」,将原有TargetFramework节点的值从net5.0-windows7.0替换为net5.0-windows10.0.17763.0及以上版本(版本号需匹配你用到的条码扫描API最低依赖的Windows SDK版本),卸载之前安装的所有UWP专属Nuget包,修改后框架会自动引入对应WinRT运行时支持,不需要单独安装该冲突包,原有UWP示例中的条码扫描逻辑只需做少量异步适配即可直接使用。 - 封装UWP逻辑为独立组件跨进程调用
不改动现有Winforms项目的配置,单独新建一个UWP项目封装条码扫描的全部逻辑,通过命名管道、共享内存等进程间通信方式和.NET 5 Winforms项目传输扫描结果,该方案侵入性最低,适合现有项目改动限制较多的场景。 - 迁移至Windows App SDK版本的条码扫描API
将原有UWP条码扫描的调用逻辑迁移到Windows App SDK提供的通用扫描API,这套API原生适配.NET 5+桌面项目,不存在UWP专属包的依赖冲突,接口设计和UWP版本高度一致,迁移成本很低。
内容的提问来源于stack exchange,提问作者Martin Thompson
相关产品推荐
相关产品推荐

