系统.IO.Ports.SerialPort类的工作方式因目标框架而异



我正在尝试打开与蓝牙设备的串行端口连接。这就是我决定的方式,因为我的设备通过rfcomm进行通信,并且没有很好的蓝牙库支持。

问题是,我可以运行完全相同的代码,针对不同的框架,并收到不同的结果。当我瞄准的时候。NET Framework(4.5(,没有问题,工作正常。当我瞄准的时候。NET标准(2.0(,我通常会收到警告

警告:发现同一依赖程序集的不同版本之间存在冲突。

警告很清楚,但我不知道其他程序集可能在哪里,因为我从头开始制作了一个基本的应用程序。

这是一个代码示例:

using System.IO.Ports;
bool bConnected = false;
string sComPort = "COM10";
WindowsBluetoothSocket = new SerialPort(sComPort);
WindowsBluetoothSocket.Open();
bConnected = WindowsBluetoothSocket.IsOpen;

如果使用中提供的相同代码。NET框架控制台应用程序,您应该没有任何问题。如果你在Xamarin中使用它。表单移动应用程序仅适用于UWP(.NET Standard 2.0(,它将失败,如所述。

如有任何帮助,我们将不胜感激。

我认为如果您在learn中查看SerialPort类。微软等。它在底部告诉你串行端口将在Xamarin Mac3.0上工作。我认为这意味着它不能在Android和UniversalWindows上工作,只能在Mac3.iOS上工作。我遇到了你描述的同样的问题,不明白为什么它编码没有错误,但仍然不能在UniversalWindows项目上工作。

最新更新