Laden...

Wie erzwinge ich C# Version 8

Erstellt von sven007 vor 2 Jahren Letzter Beitrag vor 2 Jahren 465 Views
S
sven007 Themenstarter:in
12 Beiträge seit 2021
vor 2 Jahren
Wie erzwinge ich C# Version 8

Hallo Leute,
bei VS 2019 bin ich neu und habe eine wahrscheinlich alberne Frage:
Ich bekomme den Fehler CS8370, das statische lokale Funktionen erst ab C#8 erlaubt seien. Das finde ich einerseits inhaltlich erstaunlich, aber andererseits habe ich nichts gegen Version 8. Nur, wie stelle ich das als Zielversion ein? Klicke ich im Projektmappenexplorer auf mein Projekt, ist als Zielframework das .NET 4.7.2 ausgewählt. Müsste das nicht passen?

Danke und Grüße
Sven

309 Beiträge seit 2020
vor 2 Jahren
4.942 Beiträge seit 2008
vor 2 Jahren

Wohl eher dieser Link: Verwaltung der C#-Sprachversion
Und daraus

C# 8.0 wird nur in .NET Core 3.x und höher unterstützt.

Mit .NET Framework 4.x (sowie .NET-Standard 2.0) bist du auf C# 7.3 beschränkt.
Du müßtest also dein Projekt auf .NET 5 migrieren.

S
sven007 Themenstarter:in
12 Beiträge seit 2021
vor 2 Jahren

Hallo,

lieben Dank.
Ist aber .NET 4.7.2 nicht größer als 3.x?
In meiner Auswahlbox ist das die höchste Version 😠

16.842 Beiträge seit 2008
vor 2 Jahren

Würde ma ins Blaue schießen, dass Du circa 5 Jahre Evolution des .NET Ökosystems nicht mitbekommen hast 🙂.NET Future Innovation: .NET Standard

Es gibt das .NET Framework, bei dem man erkannt hat, dass der Aufbau keine Zukunft mehr hat.
Daher hat man einen neuen Zweig der Runtime angefangen, der damals .NET Core hieß - es gab also zwei parallele Runtimes.

Mit .NET 5 wurde beides (bzw. alles inkl. Mono etc..) wieder auf eine Linie gebracht:
NET Framework ist obsolete, es gibt nur noch .NET Core (nun mit dem aufgeräumten Namen .NET 5 ... .NET 6 etc

Wenn man es also so sieht:
.NET Framework ist älter als .NET Core, daher ist .NET FX 4.7.x auch kleiner als .NET Core 3.x 🙂
Aber das bisher bescheidene Naming wurde ja einfacher, weil es jetzt nur noch .NET 5 und neuer gibt.

In meiner Auswahlbox ist das die höchste Version

Dann hast Du kein .NET Core installiert. Das hast Du bei der Installation von VS wohl nicht angeklickt.
Migrieren einer Windows Forms-Anwendung zu .NET 5 - Windows Forms .NET

Es gibt heutzutage fast keinen Grund ein Projekt noch mit .NET Framework zu starten.

S
sven007 Themenstarter:in
12 Beiträge seit 2021
vor 2 Jahren

Würde ma ins Blaue schießen, dass Du circa 5 Jahre Evolution des .NET Ökosystems nicht mitbekommen hast 🙂

Das ist wohl war, ich steige ja erst ein. 😉
Dann muss ich also zusehen, dass ich NET 5 installiert bekomme. Danke.
Aus Windows-Perspektive ist man da umfänglich abwärtskompatibel?

16.842 Beiträge seit 2008
vor 2 Jahren

Klar, wer damit bisher nichts zutun hatte, hats auch nicht mitbekommen 🙂
Zum Support einfach in die docs schauen, da steht immer das aktuelle Zeug
.NET Core and .NET 5 official support policy

Oder einfach Versions of .NET

Anders als beim .NET Framework kannst Du die Runtime auch mit Deiner Anwendung mitbringen.
So bist Du unabhängiger von dem, was auf dem Client installiert ist.
Anwendungsveröffentlichung - .NET
Mit .NET 6 wird das IIRC auch der empfohlene Weg sein (inkl. App Trimming => App Trimming in .NET 5)

S
sven007 Themenstarter:in
12 Beiträge seit 2021
vor 2 Jahren

Super, danke.
Wenn ich in meinen Installer schaue, scheint NET 5 aber installiert zu sien, oder?
In der Auswahlliste der Projekteinstellungen habe ich sie aber nicht?

16.842 Beiträge seit 2008
vor 2 Jahren

Du kannst ein bestehendes Projekt nicht einfach so von .NET Framework auf .NET Core ändern.
Musst das bestehende migrieren, deswegen hab ich Dir den Link gegeben 😉Migrieren einer Windows Forms-Anwendung zu .NET 5 - Windows Forms .NET

Wenn du gerade erst damit angefangen hast, dann erzeug eine neue Solution mit einem neuen Projekt und zieh den Code manuell um.
Alternativ eben den Weg über den Migrationspfad.

Im aktuellen Visual Studio mit aktuellem SDK ist das Standard Template beim Erzeugen einer .NET App mittlerweile .NET 5 (etc).
Obsolete Templates werden extra mit (.NET Framework) bezeichnet.

zB

  • Windows Forms App (<--- das ist .NET 5
  • Windows Forms App (.NET Framework) (<--- das ist alt

Man muss also explizit das alte Zeug auswählen, wenn man es will.