等待调用进入异常

await call goes into Exception

我想从 BluetoothLE 示例中调用以下代码行:

static async Task<int> OpenDevice(DeviceInformation DeviceInfo)
{
// some code

await BluetoothLEDevice.FromIdAsync(DeviceInfo.Id).AsTask().TimeoutAfter(_timeout);

// some code
}

'FromIdAsync' 函数来自 'BluetoothLEDevice' Class:

[RemoteAsync]
public static IAsyncOperation<BluetoothLEDevice> FromIdAsync(string deviceId);

我遇到了这个异常:

Method not found: 'System.Threading.Tasks.Task`1<System.__Canon> System.Threading.Tasks.Task.FromCancellation(System.Threading.CancellationToken)'.

找了很多,关于'FromCancellation'方法的资料还不够。 'await' 完成时似乎会自动调用此方法。 (这是我自己的假设)

我正在考虑避免 'await' 调用。任何解决方法或帮助将不胜感激。我有 'DeviceInformation' 个具有设备 ID 的对象。我想让 'BluetoothLEDevice' 对象通过 'Services' 和 'Characteristics' 进一步移动。我正在构建一个 Windows 控制台应用程序。

正如'GazTheDestroyer'所述,我检查了所有的依赖项和包。安装了冗余包。在多个文件夹中有许多版本的 .NET Framework,例如 .Net_Framework、.NET_Portable、.NET_Core 和其他一些包。

在我的项目设置中:我使用了对来自 .NET_Framework 的 System.Runtime.WindowsRuntime.dll 程序集的引用。但我的项目目标指向 .NET_Core ,它也有相同的 DLL。

所以我更新自:

<TargetFramework>core2.2</TargetFramework>

至:

<TargetFramework>net48</TargetFramework>

这就是它无法正常工作的原因。