.Net 如何操作 Windows RunTime API

发一篇去年临时开发 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 中都要添加

  
  8.0  
  

参考: https://msdn.microsoft.com/zh-CN/library/hh708954.aspx

重新打开项目,这时候引用管理器会出现 Windows 选项卡,这时候可以添加 Windows RunTime 相关类库的引用。

同时还需要手动引用 . Net 本身的 RunTime.dll 进来。
点击引用管理器的“浏览”,在系统盘的以下路径%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\添加下面两个进来。

System.Runtime.dll
System.Runtime.InteropServices.WindowsRuntime

参考: http://stackoverflow.com/questions/12349189/the-type-system-idisposable-is-defined-in-an-assembly-that-is-not-referenced

I've found the solution!

  1. create a new WPF Application
  2. 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.

参考: https://social.msdn.microsoft.com/Forums/vstudio/en-US/81afc91e-9fa3-4dcf-9eb5-cab9845fcd00/call-winrt-api-from-desktop-app-on-windows-10?forum=windowsgeneraldevelopmentissues

你可能感兴趣的:(.Net 如何操作 Windows RunTime API)