Moinmoin,
ich habe gerade versuch ein Projekt von Visual Studio 2015 .Net Framework zu Visual Studio 2017 .NetCore zu Portieren.
Leider gibt es die Klasse "using System.IO.Ports;" (ist das Richtig Klasse oder heißt es anders?) nicht und ich bin auf der Seite SerialPortStreamCore fündig geworden.
Ich habe mir das Paket mit der Paket-Manager-Konsole "Install-Package SerialPortStreamCore" geladen. Und Visual Studio neu gestartet.
Nun ist die Zeile "using System.IO.Ports;" immer noch dezent grau, wird aber nicht mehr als Fehler angezeigt. Dafür bekomme ich nun folgenden Fehler in der Zeile> Fehlermeldung:
"public SerialPort port = new SerialPort();" CS0122"Der Zugriff auf"SerialPort" ist aufgrund des Schutzgrads nicht möglich"
Weiß jemand was das genau bedeutet und wie ich den Fehler beheben kann?
Danke und viele Grüße Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
Nun ist die Zeile "using System.IO.Ports;" immer noch dezent grau,
Das bedeutet, dass das using nicht verwendet wird.
Dafür bekomme ich nun folgenden Fehler in der Zeile"public SerialPort port = new SerialPort();" CS0122"
Was darauf schließen lässt, dass hier SerialPort nicht die Klasse System.IO.Ports.SerialPort ist, sondern eine andere Klasse, deren Konstruktor nicht public ist.
Daher auch hier der Hinweis auf die ausgegraute Zeile.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt,
danke für die schnelle Antwort.
Das bedeutet, dass das using nicht verwendet wird. Ich hatte mir schon gedacht das es nicht verwendet wird, es wurde nur vorher als Fehler ausgegeben und daher habe ich es erwähnt.
Hast du denn noch ein Tipp was ich machen kann damit der zweite Fehler behoben wird?
Oder wie ich einen SerialPort under .Net Core verwenden kann?
Danke und bis bald,
cya Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
Hallo Thommy,
mit der SerialPortStream-Bibliothek hast du doch etwas gefunden, was unter .NET Standard funktionieren sollte.
Du brauchst lt. Github Seite allerdings eine 2.x Version, die wohl noch nicht in nuget verfügbar ist.
Auch heißt die Klasse dann nicht mehr SerialPort
sondern SerialPortStream
und das handling ist anders.
Dass Du das unter .NET Core verwenden willst, hättest ruhig sagen können. Wir können noch nicht hellsehen.
.NET Core 1.x unterstützt kein SerialPort; ergo bringt der Namespace dazu auch nichts.
Und natürlich kannst Du mit .NET Core 1.x nicht ohne weiteres einfach NET Framework Referenzen nutzen.
Serial Ports sind so ohne weiteres auch nicht Crossplattform fähig; daher wirst Du hier pro Plattform eine eigene Implementierung benötigen, wie bei anderen, unmanaged Elementen auch.
Welche Alternative Du hast; da müsste ich auch Google und GitHub um Rat fragen...evtl. hast Du da ja schon das richtige Paket - aber nutzt es halt falsch.
Das, was Du da jedenfalls als SerialPort nutzt - woher die Klasse auch immer kommt - hat eben keinen public Constructor.
Schau in dessen Doku, wie dort der SerialPort funktioniert und die Klasse verwendet werden kann.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Super Danke für eure Hilfe.
Leider kann ich es erst morgen Testen und ich weiß auch nicht welche Version installiert wurde. Wie kann ich denn manuell die Version 2.x installieren?
Gibt es denn eine Möglichkeit meinen bestehenden Code der auf .Net Framework basiert auf .Net Core ohne großen aufwand umzuschreiben.
Danke und bis bald,
cya Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
Gibt es denn eine Möglichkeit meinen bestehenden Code der auf .Net Framework basiert auf .Net Core ohne großen aufwand umzuschreiben.
Wenn Du Elemente basierend auf dem .NET Standard in der jeweiligen Version verwendest, ja.
Aber wir kennen Dein Code nicht, was sollen wir sagen? 🤔 .NET Core zu verwenden macht nicht in allen Szenarien sinn.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich werde es morgen gleich mal testen und es hier Berichten 😉
Danke erstmal und ich hoffe es klappt morgen alles 😉
cya Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
Via NuGet wurde SerialPortStream (2.1.1) und SerialPortStreamCore(2.2.0) installiert und in dem Abhängigkeiten eingefügt.
Leider weiß ich nicht genau wie ich nun eine Port erstelle und nutzen kann, einbinden der SerialPortStream, SerialPortStreamCore Kalsse bzw. erstellen einer Serial Port Insanste.
Es wäre toll wenn mir jemand einen kleinen Roten Faden zeigen könnte 😉
Danke und VG Thommy
(Sorry C# und .Net Core etc sind noch etwas neu für mich 😐 )
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
Weiß jemand wie ich das Projekt "SerialPortStream-2.x" in meinen Code einbinden kann und so einen port via " SerialPortStream src = new SerialPortStream();" einbinden kann?
LG Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
[FAQ] CS0234 / CS0246 - Der Typ- oder Namespacename "Foo" konnte nicht gefunden werden
Bitte auch ein wenig selbst die Fehlermeldungen googlen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt,
sorry wenn ich es noch nicht verstehe (Ich habe auch schon recht viel gegoogelt), für mich ist das alles noch recht viel neuland.
#ich hatte ein Programm welches unter .Net Framework gut funktioniert und nutzte in meinem Quellcode "using System.IO.Ports;" und den Befehl "SerialPort port = new SerialPort();"
Mit dem umstieg auf .Net Core fiel nun "System.IO.Ports;" weg und ich konnte den Befehl "SerialPort port = new SerialPort();" nicht mehr nutzen.
Diese Funktion soll aber im Paket "SerialPortStreamCore" vorhanden sein, ich habe die Pakete "SerialPortStreamCore 2.1.0" und "SerialPortStream 2.1.1" nach Anleitung mit der Paket-Manager-Konsole geladen und diese Tauchen auch in den Abhängigkeiten unter NuGet in meinen Projekt auf.
Leider weiß ich nun nicht genau wie ich auf den Port zugreifen kann 😭
und ich weiß nicht ob ich falsch Google aber leider finde ich auch keine Anleitung wie ich das Paket SerialPortStreamCore nun genau verwende.
Sorry wenn weine Fragen etwas plump rüberkommen, aber ich bekomme es einfach nicht hin 😭
Danke für eure Hilfe, cya Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.
Hallo,
da hast du wohl etwas falsch verstanden. SerialPortStream ist zwar ein Ersatz für SerialPort, aber es benutzt eben einen anderen Klassennamen und auch einen eigenen Namensbereich (namespace), s. SerialPortStream.cs
Du müßtest also folgendes schreiben:
using RJCP.IO.Ports;
SerialPortStream serialPort = new SerialPortStream("COM1");
Sieh dir auch mal die Unit-Tests dazu an: SerialPortStreamTest
Super, genau das habe ich gesucht 😁
Vielen Dank für eure Hilfe 👍
thx and cya Thommy
Es gibt 10 Arten von Menschen. Die die Binärcode verstehen und die die ihn nicht verstehen.