未能添加对Windows.Devices.Bluetooth.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件

1.背景

很能同学可能需要C#蓝牙编程,目前使用最多的有Windows.Devices.Bluetooth.dll和InTheHand.Net.Personal.dll
但是据说InTheHand.Net.Personal.dll不能支持蓝牙4.0(有待考证),这就导致市面上多数的蓝牙4.0不能用InTheHand.Net.Personal.dll程序集进行编程通讯。

2.问题

  • 所以很多同学转而使用Windows.Devices.Bluetooth.dll进行编程,然而在使用VS添加其using引用或在 :解决方案>引用>浏览时找不到此程序集,或者在进行尝试手动下载Windows.Devices.Bluetooth.dll,再添加引用则报告以下错误:
    在这里插入图片描述

  • 再尝试将此Windows.Devices.Bluetooth.dll放进System32或SysWOW64下,并尝试注册此dll,要么无法注册,要么仍然无法引用。

  • 再尝试在 项目的.csproj文件的ItemGroup节点里添加以下代码

    <Reference Include="Windows.Devices.Bluetooth">
      <HintPath>Windows.Devices.Bluetooth.dll</HintPath>
    </Reference>

vs仍然报错找不不到此程序集无法引用。

  • 再尝试使用[DLLImport]不过vs提示调用函数时需要对函数进行声明,这个时候想到反编译工具ILSpy,但是仍然查看不到内容提示This file does not contain a managed assembly.

3.解决方案

总之尝试了多种方法后仍然无果,无奈下通过海量阅读论坛和博文总结出以下行之有效的办法。
先晒图为证:
在这里插入图片描述在这里插入图片描述
解决步骤:

  1. 解决方案管理器中右键项目选卸载项目,再右键点编辑.csproj。在文件里PropertyGroup节点下添加以下代码并保存:
<TargetPlatformVersion>8.0</TargetPlatformVersion>
  1. 添加如图引用:
    在这里插入图片描述
    如果没有,此引用存在于C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral
    文件夹下,引用Windows.winmd。(具体情况可能不同,可能存在于8.1,8.1A,10.0等文件夹下,如果这样记得修改.csproj文件的TargetPlatformVersion值,对于vs2017很可能存在于C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Annotated下)如果ExtensionSDKs文件夹不存在Microsoft.VCLibs文件夹,则进行下面操作:
    打开你的vs安装程序,或者在控制面板程序修改vs(不是卸载),到达如下界面:
    在这里插入图片描述
    你很可能未安装用于维护面向Windows 8的应用商店应用的工具,勾选后静等安装完毕。
  2. 添加WIndow.device.winmd引用(非必须)如果不存在可能存在于C:\WINDOWS\System32\WinMetadata\Windows.Devices.winmd,如果不存在请直接下载(提取码017m)后引用(亲测有效)
  3. 添加System.Runtime.WindowsRuntime.dll引用,此位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5目录下。
  4. 修改项目属性目标框架选择.NET Framework 4.5或以上,若不存在,请转至MSDN下载上述框架。
    以上就是解决方案,再代码添加
    using Windows.Devices.Bluetooth;
    就可以使用 Windows.Devices.Bluetooth程序集编程。
    若有问题请咨询QQ1544780964

方法二:

尝试直接下载这些文件(提取码m7ty)并引用,在.csproj文件PropertyGroup结点下添加

<TargetPlatformVersion>8.0</TargetPlatformVersion>

并保存,就可以直接调用Windows.Devices.Bluetooth了
欢迎小伙伴们在评论区交流探讨

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值