UWP 应用程序中的 BLE GATT:异步函数问题
BLE GATT in UWP application : Problem with async functions
我正在开发用于管理 BLE/GATT 设备的 UWP 应用程序。
我正在关注 Microsoft (https://docs.microsoft.com/fr-fr/windows/uwp/devices-sensors/gatt-client) 的官方文档。但是我对 BluetoothLEDevice class.
的异步函数有问题
当我写下一行时:
BluetoothLEDevice bluetoothLeDevice = await BluetoothLEDevice.FromIdAsync(deviceInfo.Id);
我有以下错误:
错误 CS0012 类型 'IAsyncAction' 在程序集中定义,该程序集
未被引用。您必须添加对程序集 'Windows 的引用,
版本=255.255.255.255,文化=中性,PublicKeyToken=null,
ContentType=Windows运行时'.
错误 CS0012 类型 'IAsyncActionWithProgress<>' 定义在
未引用的程序集。您必须添加对程序集的引用
'Windows, Version=255.255.255.255, Culture=neutral,
PublicKeyToken=null, ContentType=WindowsRuntime'.
错误 CS0012 程序集中定义了类型 'IAsyncOperation<>'
那没有被引用。您必须添加对程序集的引用
'Windows, Version=255.255.255.255, Culture=neutral,
PublicKeyToken=null, ContentType=WindowsRuntime'.
错误 CS0012 类型 'IAsyncOperationWithProgress<,>' 定义于
未引用的程序集。您必须添加对
程序集 'Windows, Version=255.255.255.255, Culture=neutral,
PublicKeyToken=null, ContentType=WindowsRuntime'.
我尝试手动添加以下参考(就像我在多个 post 中发现的那样):
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\system.runtime.windowsruntime.dll
C:\Program Files (x86)\Windows Kits\UnionMetadata\Windows.winmd
但是,在第一种情况下,VS 说它已经包含在生成器系统中(或类似的东西)。在第二种情况下,我的代码中有很多 class 被引用了两次(例如 Page)
解决方法是什么?
我的猜测是您缺少对在 .Net 应用程序中使用它所需的 UWP api 的引用。
确保您使用的是 Package References in your project and you have added Microsoft.Windows.SDK.Contracts as a nuget package
我正在开发用于管理 BLE/GATT 设备的 UWP 应用程序。 我正在关注 Microsoft (https://docs.microsoft.com/fr-fr/windows/uwp/devices-sensors/gatt-client) 的官方文档。但是我对 BluetoothLEDevice class.
的异步函数有问题当我写下一行时:
BluetoothLEDevice bluetoothLeDevice = await BluetoothLEDevice.FromIdAsync(deviceInfo.Id);
我有以下错误:
错误 CS0012 类型 'IAsyncAction' 在程序集中定义,该程序集 未被引用。您必须添加对程序集 'Windows 的引用, 版本=255.255.255.255,文化=中性,PublicKeyToken=null, ContentType=Windows运行时'.
错误 CS0012 类型 'IAsyncActionWithProgress<>' 定义在 未引用的程序集。您必须添加对程序集的引用 'Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.
错误 CS0012 程序集中定义了类型 'IAsyncOperation<>' 那没有被引用。您必须添加对程序集的引用 'Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.
错误 CS0012 类型 'IAsyncOperationWithProgress<,>' 定义于 未引用的程序集。您必须添加对 程序集 'Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'.
我尝试手动添加以下参考(就像我在多个 post 中发现的那样):
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\system.runtime.windowsruntime.dll
C:\Program Files (x86)\Windows Kits\UnionMetadata\Windows.winmd
但是,在第一种情况下,VS 说它已经包含在生成器系统中(或类似的东西)。在第二种情况下,我的代码中有很多 class 被引用了两次(例如 Page)
解决方法是什么?
我的猜测是您缺少对在 .Net 应用程序中使用它所需的 UWP api 的引用。
确保您使用的是 Package References in your project and you have added Microsoft.Windows.SDK.Contracts as a nuget package