web-dev-qa-db-ja.com

.NET Core-Visual StudioコードでSystem.IO.Ports.SerialPortを使用します

.Net CoreでVisual Studioコードを使用してコンソールアプリケーションを作成し、使用可能なすべてのポートを取得しようとしています。使い方 System.IO.Ports.SerialPortクラス Visual Studioコードでは? usingステートメントで宣言しようとしていますが、使用できるのはCompressionMemoryMappedFilesの名前空間System.IO

.Net Core 1.1.1 SDKを使用しています

9
jmvtrinidad

Linux OSを使用している場合は、 SerialPortStream libraryを使用できます。 libserialバイナリが必要であり、Linuxのみでコンパイルできました(MacOSまたはWindows用ではありません)。

他の方法は、Mono実装と Mono.Posix.NETStandard パッケージを使用することです。この方法は、NETStandard 2.0プロジェクトでのみ機能します。

System.IO.PortsクラスのソースをMonoからNETStandard 2.0プロジェクトにコピーし、Mono.Posix.NETStandard、Microsoft.Win32.Registry参照を追加し、<AllowUnsafeBlocks>true</AllowUnsafeBlocks>私の.csprojファイルへのセクション。また、MacOおよびWindowsで動作します。

5
dima117

.NET APIブラウザを使用してください。 .NET Core 1.1にはSerialPortが存在しません: https://docs.Microsoft.com/en-us/dotnet/api/?term=serialport&view=netcore-1.1 ですが、.NET Coreに追加されました2.0: https://docs.Microsoft.com/en-us/dotnet/api/?term=serialport&view=netcore-2. System.IO.dllへの参照をメインフレームワークからいつでも追加できますSerialPortを取得しますが、.NET Core 1.1に準拠していません(Linux、MacOSなどに移植できません)

2