【问题标题】:Netcore 3.0 versus 5.0 difference, NullReferenceException with WriteValueWithResultAsync (BLE Lib)Netcore 3.0 与 5.0 的区别,NullReferenceException 与 WriteValueWithResultAsync (BLE Lib)
【发布时间】:2021-07-12 12:24:37
【问题描述】:

我正在尝试将功能从 UWP example for BLE 分离到单独的库中进行测试。

我成功地将其设置为独立的测试库​​(使用 netcore 3.0)

但是,在迁移到我的 GUI 应用程序(现在使用 netcore 5.0)时,无法再引用 WinRT,因此我不得不删除对 Windows 合同的引用。

现在我正在运行并且能够找到我的 BLE 设备(甚至是正确的读/写特征),但是现在当我写入设备特征时,我遇到了 NullReferenceException 的破坏性崩溃。

所涉及对象中的所有变量似乎都不为空,除了 Gatt 特性中的设备 ID 隐藏了互操作 COM 异常,但是,这对于我在 3.0 中的“控制台应用程序”也是如此,它没有这个问题并且工作正常(即使存在相同的条件)

如何进行更深入的调试?这是一个安全问题吗?

我的目标是 net5.0-windows10.0.19041

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=System.Private.CoreLib
  StackTrace:
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Library.BleLib.BleComms.<WriteBufferToSelectedCharacteristicAsync>d__21.MoveNext() in C:\Testing\Net\trunk\Externals\BleLib\BleComms.cs:line 200

【问题讨论】:

    标签: c# uwp bluetooth-lowenergy gatt


    【解决方案1】:

    您已经获得了预期的行为。目前,uwp 应用程序不支持引用 .net 核心类库。如果要在uwp app中引用自定义库,推荐使用.net标准类库。

    对于您的情况,您可以右键单击类库,然后选择 Edit Project File,将 TargetFramework 从 .NET Core 更改为 .NET Standard。如下:

    <PropertyGroup>
        <TargetFramework>netstandard2.1</TargetFramework>
    </PropertyGroup>
    

    【讨论】:

      【解决方案2】:

      我会让社区决定什么是更好的答案,Arya Ding 也是正确的。

      就我而言,我想坚持使用 Netcore,因为大部分代码库已经用它编写了。通过降级到 3.0 并添加 NuGet 引用:

      Microsoft.Windows.SDK.Contracts 
      

      之后一切都按预期进行。

      【讨论】:

      • 我们正在就您的问题咨询其他工程师,可能会有一些延迟。
      • 我收到了团队的回复。已确认针对 Build 19041 的 .Net Core 5.0 有效。只要您使用 .NetCoreUniversalPackage 6.2.12 版(在 Visual Studio 的 NuGet 库中找到)就可以按预期工作。
      猜你喜欢
      • 2020-11-14
      • 1970-01-01
      • 2021-08-09
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      相关资源
      最近更新 更多