.NET Core - 在visual studio代码中使用System.IO.Ports.SerialPort

jmv*_*dad 9 c# serial-port .net-core visual-studio-code

我正在尝试使用带有.Net Core的visual studio代码创建一个控制台应用程序并获取所有可用端口.如何在visual studio代码中使用System.IO.Ports.SerialPort ?我尝试用声明声明它,using但唯一可用的是CompressionMemoryMappedFiles命名空间System.IO.

我正在使用.Net Core 1.1.1 SDK

小智 5

如果您使用的是Linux OS,则可以使用SerialPortStream库。它需要libserial二进制文件,而我只能针对linux(而不是MacOS或Windows)进行编译。

其他方法是使用Mono实现和Mono.Posix.NETStandard包。这种方式仅适用于NETStandard 2.0项目。

我从Mono复制了System.IO.Ports类的源代码到我的NETStandard 2.0项目中,添加了Mono.Posix.NETStandard,Microsoft.Win32.Registry引用,并将包含的<AllowUnsafeBlocks>true</AllowUnsafeBlocks>部分添加到我的.csproj文件中。它适用于MacO和Windows。


Dre*_*kes 5

对于几年后来到这篇文章的人......

从 .NET Core 2.0 开始,可以使用System.IO.Ports.


Rav*_*nth -6

System.IO.Ports 将出现在 system.dll 中,因此默认情况下它会在您创建项目时添加到您的项目中。

那么你需要添加

Using System.IO.Ports Namespace to your class 
Run Code Online (Sandbox Code Playgroud)

这是一个示例,它将为我们提供可用端口。

private void getAllAvailablePorts()
 {
     // Get a list of serial port names.
     string[] ports = SerialPort.GetPortNames();

     Console.WriteLine("The following serial ports were found:");

     // Display each port name to the console.
     foreach (string port in ports)
     {
       Console.WriteLine(port);
      }
}
Run Code Online (Sandbox Code Playgroud)