Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ungültige Option „option“ für LangVersion. Verwenden Sie ?, um unterstützte Werte aufzulisten.
Dieser Fehler tritt auf, wenn Sie den Befehlszeilenschalter oder die Projekteinstellung LangVersion verwendet, aber keine gültige Sprachoption angegeben haben. Überprüfen Sie die Syntax der Befehlszeile oder die Projekteinstellung, und ändern Sie sie in eine der aufgeführten Optionen, um diesen Fehler zu beheben.
Beim Kompilieren mit csc -langversion:ISO wird z. B. der Fehler CS1617 generiert.
Auflisten unterstützter Sprachversionen
Um eine Liste der unterstützten Sprachversionen anzuzeigen, verweisen Sie auf die Tabelle in diesem Artikel, kompilieren Sie mit -langversion:? oder legen Sie <LangVersion>?</LangVersion> vorübergehend in Ihrer Projektdatei fest, bevor Sie bauen.
Verwenden der Referenztabelle (empfohlen)
Die zuverlässigste Möglichkeit, unterstützte Sprachversionen anzuzeigen, besteht darin, die Referenztabelle am Ende dieses Artikels zu konsultieren, in der alle derzeit unterstützten Sprachversionen aufgeführt sind.
Verwenden des C#-Compilers direkt
Verwenden Sie die -langversion:? Option mit dem C#-Compiler. Sie müssen den Pfad zu csc.dll Ihrer .NET SDK-Installation ermitteln:
dotnet exec "/path/to/dotnet/sdk/version/Roslyn/bincore/csc.dll" -langversion:?
Beispiel: unter Linux mit .NET 8 SDK:
dotnet exec "/usr/lib/dotnet/sdk/8.0.117/Roslyn/bincore/csc.dll" -langversion:?
Der genaue Pfad variiert je nach Betriebssystem- und .NET SDK-Version.
Verwenden einer Projektdatei mit Diagnoseausgabe (nicht empfohlen)
Sie können vorübergehend <LangVersion>?</LangVersion> in Ihrer Projektdatei festlegen und für die Erstellung ausführliche Diagnostik nutzen:
dotnet build -v diagnostic
Suchen Sie in der Ausgabe nach der Zeile "Unterstützte Sprachversionen:".
Warnung
Die Einstellung <LangVersion>?</LangVersion> in einer Projektdatei führt dazu, dass der Build fehlschlägt, nachdem die unterstützten Versionen angezeigt wurden. Dies liegt daran, dass der Compiler nach dem Auflisten der Versionen beendet wird, anstatt den Code weiter zu kompilieren. Entfernen Sie diese Einstellung nach dem Anzeigen der Liste.
Gültige Werte für -LangVersion
Die gültigen Werte für die Sprachversionen hängen von der verwendeten .NET-Version ab. Weitere Informationen dazu, welche Sprachversion für die jeweilige .NET-Version verfügbar ist, finden Sie in den Sprachversionsregeln. Falls Sie diesen Fehler erhalten, während Sie versuchen, eine neuere Sprachversion zu verwenden, nehmen Sie entweder ein Downgrade auf eine niedrigere Sprachversion vor, oder aktualisieren Sie Ihr .NET SDK auf eine Version, die diese Sprachversion unterstützt.
Die folgende Tabelle enthält die aktuell gültigen Werte für -langversion:
| value | Bedeutung |
|---|---|
preview |
Der Compiler akzeptiert jede gültige Sprachsyntax der letzten Vorschauversion. |
latest |
Der Compiler akzeptiert die Syntax der neuesten veröffentlichte Version des Compilers (einschließlich Nebenversionen). |
latestMajoroder default |
Der Compiler akzeptiert die Syntax der neuesten veröffentlichte Hauptversion des Compilers. |
15.0 |
Der Compiler akzeptiert nur syntax, die in C# 15 oder niedriger enthalten ist. |
14.0 |
Der Compiler akzeptiert nur syntax, die in C# 14 oder niedriger enthalten ist. |
13.0 |
Der Compiler akzeptiert nur Syntax von C# 13 oder niedriger. |
12.0 |
Der Compiler akzeptiert nur Syntax von C# 12 oder niedriger. |
11.0 |
Der Compiler akzeptiert nur Syntax von C# 11 oder niedriger. |
10.0 |
Der Compiler akzeptiert nur Syntax, die in C# 10 oder niedriger enthalten ist. |
9.0 |
Der Compiler akzeptiert nur Syntax, die in C# 9 oder niedriger enthalten ist. |
8.0 |
Der Compiler akzeptiert nur Syntax, die in C# 8.0 oder niedriger enthalten ist. |
7.3 |
Der Compiler akzeptiert nur Syntax, die in C# 7.3 oder früher enthalten ist. |
7.2 |
Der Compiler akzeptiert nur Syntax, die in C# 7.2 oder früher enthalten ist. |
7.1 |
Der Compiler akzeptiert nur Syntax, die in C# 7.1 oder früher enthalten ist. |
7 |
Der Compiler akzeptiert nur Syntax, die in C# 7.0 oder früher enthalten ist. |
6 |
Der Compiler akzeptiert nur Syntax, die in C# 6.0 oder früher enthalten ist. |
5 |
Der Compiler akzeptiert nur Syntax, die in C# 5.0 oder früher enthalten ist. |
4 |
Der Compiler akzeptiert nur Syntax, die in C# 4.0 oder früher enthalten ist. |
3 |
Der Compiler akzeptiert nur Syntax, die in C# 3.0 oder früher enthalten ist. |
ISO-2oder 2 |
Der Compiler akzeptiert nur Syntax, die in ISO/IEC 23270:2006 C# (2.0) enthalten ist. |
ISO-1oder 1 |
Der Compiler akzeptiert nur Syntax, die in ISO/IEC 23270:2003 C# (1.0/1.2) enthalten ist. |