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
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.
Hallo,
lieben Dank.
Ist aber .NET 4.7.2 nicht größer als 3.x?
In meiner Auswahlbox ist das die höchste Version 😠
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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?
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)
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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?
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
Man muss also explizit das alte Zeug auswählen, wenn man es will.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code