Laden...

Einen Verweis hinzufügen um "SerialPort" nutzen zu können

Erstellt von Halodri vor 4 Jahren Letzter Beitrag vor 4 Jahren 18.652 Views
H
Halodri Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren
Einen Verweis hinzufügen um "SerialPort" nutzen zu können

Hallo,

bin totaler C# - Anfänger und wollte ein Beispiel mit seriellem Port ausprobieren.
Benutze die VS Community 2019 Edition.
Trotz "using System.IO.Ports;" kennt er "serialPort" nicht und meint:> Fehlermeldung:

Der Typname "SerialPort" konnte nicht im Namespace "System.IO.Ports" gefunden werden...
...Sie sollten einen Verweis auf die Assembly hinzufügen.

Fragen:

  • Ist Serial Port in der Community-Edition nicht enthalten?
  • Wie kann ich den Verweis auf die Assembly hinzufügen?
    -> Projekt - Verweis hinzufügen?? Und dann wo/was suchen?

Danke für Hinweise

Kaum macht man's richtig - und schon geht's!

16.806 Beiträge seit 2008
vor 4 Jahren

Ein Blick in die Dokumentation des SerialPorts zeigt, dass System.IO.Ports der Namespace ist und System.dll, System.IO.Ports.dll die dazugehörige Assembly - in diesem Fall je nachdem die beiden.
Namespace für das using und die Assembly zum Referenzieren.

Siehe auch [FAQ] Wie finde ich den Einstieg in C#? bzw. [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

Ist Serial Port in der Community-Edition nicht enthalten?

Visual Studio ist nur eine Programmierumgebung. Darin ist aber kein ".NET" enthalten.
Das .NET SDK muss zum Entwickeln installiert sein und bringt VS je nach Version auch mit - aber "enthalten" ist es im .NET Framework; nicht in Visual Studio.

Und dann wo/was suchen?

Nach der Assembly.

1.029 Beiträge seit 2010
vor 4 Jahren

Hi,

als Starthilfe: Du solltest solang du's noch nicht auswendig kannst immer die MSDN-Doku benutzen. Google nach "c# serialport" liefert ganz oben folgendes Ergebnis:
https://docs.microsoft.com/de-de/dotnet/api/system.io.ports.serialport?view=netframework-4.8

Ganz oben sieht man dann:
Namespace: "System.IO.Ports" -> du schreibst dann "using System.IO.Ports"
Assemblies: "System.dll, "System.IO.Ports.dll"
Da System.dll im Standard eingebunden ist, benötigst du nur noch einen Verweis auf "System.IO.Ports".

LG

H
Halodri Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren

Hallo,

danke schon mal für die Klarstellung.
Ich habe jetzt mit Projekt -> Verweis hinzufügen
die Datei: System.IO.Ports.dll
aus dem Verzeichnis:
C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\runtime.win10-x64.microsoft.netcore.universalwindowsplatform\6.2.8\runtimes\win10-x64\lib\uap10.0.15138
hinzugefügt.
(Microsoft.NET Framework 4.72 ist installiert)
Wenn ich jedoch den Verweismanager schließe und wieder öffne,
fehlt das Häkchen bei dem Verweis.

Jedoch kommt immer noch die Fehlermeldung: "The type name 'SerialPort' could not be found in the namespace..."

Im Projektmappen-Explorer unter Assemblys ist die System.IO.Ports aufgeführt, aber mit einem
Ausrufezeichen im gelben Dreieck.
Unter SDK ist Microsoft.NETCore.App aufgeführt...

Was mache ich falsch?
Ist bei der Community-Version der SDK beschnitten, so dass man z.B. SerialPort nicht nutzen kann?

Kaum macht man's richtig - und schon geht's!

1.029 Beiträge seit 2010
vor 4 Jahren

Hi,

urgs - du benutzt kein .NET - sondern .NET Core.
Unter normalem .NET hätte es ohne einen Verweis auf System.IO.Ports.dll geklappt, da die Assembly Teil der System.dll ist. (habs unter .NET 4.7.2 ausprobiert)

Unter .NET Core läuft das allerdings anders - hier verwendet man größtenteils NuGet - du musst somit über den NuGet-Paketmanager das Paket System.IO.Ports hinzufügen.

Übrigens: An deiner Stelle würde ich vermutlich eher mit .NET und nicht mit .NET Core anfangen - früher oder später wirst du Anwendungen mit UI schreiben sollen wenn du einem Buch folgst - das ist in dieser Form mit .NET Core nicht möglich.

LG

H
Halodri Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren

>> du benutzt kein .NET

Und wie benutze ich .NET?
Muss ich dazu ein WFP-Projekt erstellen?
Gibts das bei Community nicht?

>> du musst somit über den NuGet-Paketmanager das Paket System.IO.Ports hinzufügen.
Hat auch nicht funktioniert.

Mittlerweile habe ich ein WPF-Projekt erstellt und mit
"using System.IO.Ports;"
habe ich meinen minimalen Serial-Port-Code (ohne zusätzlichen Verweis!) zum laufen bekommen...
...Meine ursprüngliche Frage hat sich somit erledigt. Danke nochmal.

Kaum macht man's richtig - und schon geht's!

1.029 Beiträge seit 2010
vor 4 Jahren

Hi,

nein - auch .NET kannst du problemlos mit der Community-Edition nutzen. Eigentlich fehlen in der Community-Edition ohnehin nur Spezialsachen, die du noch lange nicht brauchst.

Wie du .NET benutzt? Simpel indem du die richtige Projektvorlage nimmst. Es gibt halt mehr wie eine Möglichkeit für Konsolenprogramme - und du musst eben die auswählen, die .NET benutzt. (In VS 2019 heisst die Vorlage "Konsolen-App (.NET-Framework)")

Du hast z.B. eine Vorlage ausgewählt die "Konsolen-App (.NET Core)" oder ähnlich heißt.
(Für deinen Fall also nicht ganz die richtige Vorlage)

LG

H
Halodri Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren

Hallo nochmal,

zuerst mal, nochmal danke für deine Geduld!
Bei neuem Projekt ist die .NetCore Console-App-Auswahl ganz oben und
erst jetzt habe ich gesehen, dass man scrollen kann und es das mit
.Net auch gibt.
Das sind so Sachen, über die man als Anfänger stolpert / hineintappt, da in Tutorials solche Feinheiten wenig/gar nicht erwähnt sind.

Kaum macht man's richtig - und schon geht's!

1.029 Beiträge seit 2010
vor 4 Jahren

Kein Ding - dass das in Tutorials nicht vorkommt ist logisch, da .NET-Core sehr jung ist und potenziell eher für Serveranwendungen (die im Einsteigertutorial sicher nicht vorkommen). Ab davon - so groß wie .NET / .NET Core / .NET Standard geworden ist - ist es unumgänglich, dass es für Einsteiger erstmal sehr unübersichtlich wirkt 😉

Viel Erfolg jedenfalls 😉