【问题标题】:System.IO.Ports 5.0 Xamarin.Forms Serial Port not supportedSystem.IO.Ports 5.0 Xamarin.Forms 不支持串行端口
【发布时间】:2021-02-22 17:06:33
【问题描述】:

我正在创建一个 Xamarin.Forms 应用程序,该应用程序通过 RS232 -> USB 从外部设备读取数据。我一直在寻找如何从串行端口读取数据并遇到 System.IO.Ports,它说它将与 .netstandard2.0 一起使用,并具有 MonoAndroid1.0、MonoTouch、Xamarin.iOS 等支持。我正在运行 Xamarin forms 4.8(将很快升级到 5),它在面向 Android 8+ 时实现了 netstandard2.0,而我的目标是 9,所以我不确定为什么这不起作用。当我尝试新建一个串口时,它会抛出一个异常

System.PlatformNotSupportedException: 'System.IO.Ports is currently only supported on Windows.'

更令人困惑的是,MS Doc 网站说它支持 .NET 框架 2.0 - 4.8 .NET 平台 2.1 - 5.0 Xamarin.Mac 3.0

Nuget 包说它支持 .net 标准 2.0 .netcoreapp2.1 单机器人 单点触控 xamarin.mac xamarin.ios

github 页面有 linx、mac、windows 的实现......所以不知道为什么异常明确地说只适用于 windows。

微软文档网站:https://docs.microsoft.com/en-us/dotnet/api/system.io.ports.serialport?view=dotnet-plat-ext-5.0

Github:https://github.com/dotnet/corefx/tree/master/src/System.IO.Ports/src/System/IO/Ports

Nuget 包:https://www.nuget.org/packages/System.IO.Ports/

【问题讨论】:

  • 看来 System.IO.Ports.SerialPort 将在 Xamarin 明年的 .NET 6.0 版本中提供。 Announcing .NET 5.0
  • 链接中的什么地方这么写的?
  • 我介绍的文章大约七次指出 Xamarin 将在 .NET 6.0 版本中可用。此外,在 Microsoft 的文档站点上,唯一可以使用 SerialPort 的 Xamarin 是 Xamarin.Mac 3.0。 SerialPort Class .NET Standard 未列出。
  • 你在说什么。 Xamarin 将在 .NET 6.0 中不可用 - 它将迁移到 MAUI,并且在该文章中的任何地方都没有提到 System.IO.Ports。我现在看到您在文档站点上引用的内容,但是在 nuget 上,它显示了不同的依赖关系。不知道那是关于什么的。
  • 如果您在文章中搜索“Xamarin”一词,它将出现七次。如果包含“Xamarin”的句子不符合您的想法,那就没有意义了。您可能是对的,.NET 6.0 不是 Xamarin。但是,它具有与当前 Xamarin 相同的功能和规格,因此现在您必须使用不同的框架编写单独的应用程序,但 .NET 6.0 是一个可以支持各种设备的单一应用程序。您可能可以创建一个应用程序。此类应用程序也可以支持 SerialPort。

标签: xamarin.forms xamarin.android serial-port


【解决方案1】:

因为 Xamarin.Forms 使用 .Net Standard 作为目标框架。 .Net Standard 不支持 System.IO.Ports。

您可以改用UsbDeviceConnection。此类用于向 USB 设备发送和接收数据和控制消息。有关详细信息,请查看 MS 文档。 https://docs.microsoft.com/en-us/dotnet/api/android.hardware.usb.usbdeviceconnection?view=xamarin-android-sdk-9

您可以从下面的链接下载源文件。 Xamarin.Forms: Read Data using UsbDeviceConnection Library

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多