发一篇去年临时开发 Windows 10 BLE 时的记录,微软官方提供的 Demo 都是基于 UWP 的,但是项目中是建立在 .Net 平台上,这里介绍如何对 .Net 工程配置来操作 Windows RunTime。
Windows RunTime API 是微软为 Windows 8 开始的 UWP 应用打造的一套跨平台 API。
当新建一个 “ Windows 窗体应用程序 ” 项目时,他的 Target 是 . Net Framework。但是 BLE 相关的 API 都在 Windows RunTime API 中,如果要在 .Net 中使用 BLE,需要对项目文件进行一些配置,添加对 Windows RunTime API 的引用。
首先关闭 . Net 项目,找到项目的 .csproj 文件,使用记事本等编辑器打开,在以下节点加入一条配置。
注意:Debug 和 Release 中都要添加
<PropertyGroup>
<TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
重新打开项目,这时候引用管理器会出现 Windows 选项卡,这时候可以添加 Windows RunTime 相关类库的引用。
同时还需要手动引用 . Net 本身的 RunTime.dll 进来。
点击引用管理器的“浏览”,在系统盘的以下路径%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\
添加下面两个进来。
System.Runtime.dll
System.Runtime.InteropServices.WindowsRuntime
I've found the solution!
- create a new WPF Application
- add these 2 references
C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
(the second one depends on the framework version you are using)
That's it! I can use WinRT API in my WPF Application.