Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Недопустимый параметр "option" для LangVersion. Используется ? для перечисления поддерживаемых значений.
Эта ошибка возникает, если вы использовали параметр командной строки LangVersion или параметр проекта, но не указали допустимый параметр языка. Чтобы устранить эту ошибку, проверьте синтаксис командной строки или параметр проекта и измените его на один из приведенных вариантов.
Например, компиляция с csc -langversion:ISO приведет к возникновению ошибки CS1617.
Перечисление поддерживаемых версий языка
Чтобы просмотреть список поддерживаемых языковых версий, обратитесь к таблице в этой статье, скомпилируйте -langversion:? или временно установите <LangVersion>?</LangVersion> в файле проекта перед сборкой.
Использование эталонной таблицы (рекомендуется)
Самый надежный способ просмотра поддерживаемых языковых версий — обратиться к справочной таблице в конце этой статьи, в которой перечислены все поддерживаемые в настоящее время версии языка.
Использование компилятора C# напрямую
Используйте параметр -langversion:? с компилятором C#. Вы должны найти путь к csc.dll в установке .NET SDK:
dotnet exec "/path/to/dotnet/sdk/version/Roslyn/bincore/csc.dll" -langversion:?
Например, в Linux с пакетом SDK для .NET 8:
dotnet exec "/usr/lib/dotnet/sdk/8.0.117/Roslyn/bincore/csc.dll" -langversion:?
Точный путь зависит от версии операционной системы и пакета SDK для .NET.
Использование файла проекта с выходными данными диагностики (не рекомендуется)
Вы можете временно задать <LangVersion>?</LangVersion> в файле проекта и создать его с помощью диагностической детализации:
dotnet build -v diagnostic
Найдите строку "Поддерживаемые языковые версии:" в выходных данных.
Предупреждение
Установка <LangVersion>?</LangVersion> в файле проекта приведет к сбою сборки после отображения поддерживаемых версий. Это связано с тем, что компилятор завершает работу после перечисления версий вместо продолжения компиляции кода. Удалите этот параметр после просмотра списка.
Допустимые значения для -langversion
Допустимые значения языковых версий зависят от используемой версии .NET. Для получения дополнительной информации о том, какая языковая версия доступна с какой версией .NET, см. правила языковых версий. Если вы получаете эту ошибку при попытке использовать более новую версию языка, понизьте версию языка или обновите .NET SDK до версии, поддерживающей эту версию языка.
В следующей таблице указаны текущие допустимые значения для -langversion:
| Значение | Значение |
|---|---|
preview |
Компилятор допускает использование любого допустимого синтаксиса языка из последней предварительной версии. |
latest |
Компилятор принимает синтаксис из последней выпущенной версии компилятора, включая минорную версию. |
latestMajorили default |
Компилятор принимает синтаксис из последней основной версии компилятора. |
15.0 |
Компилятор принимает только синтаксис, включенный в C# 15 или более поздней версии. |
14.0 |
Компилятор принимает только синтаксис, включенный в C# 14 или более поздней версии. |
13.0 |
Компилятор принимает только синтаксис, включенный в C# 13 или более поздней версии. |
12.0 |
Компилятор принимает только синтаксис, включенный в C# 12 или ниже. |
11.0 |
Компилятор принимает только синтаксис, включенный в C# 11 или ниже. |
10.0 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 10 или более ранних версий. |
9.0 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 9 или более ранних версий. |
8.0 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 8.0 или более ранней версии. |
7.3 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.3 или более ранней версии. |
7.2 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.2 или более ранней версии. |
7.1 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.1 или более ранней версии. |
7 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 7.0 или более ранней версии. |
6 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 6.0 или более ранней версии. |
5 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 5.0 или более ранней версии. |
4 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 4.0 или более ранней версии. |
3 |
Компилятор принимает только синтаксис, включенный в спецификацию C# 3.0 или более ранней версии. |
ISO-2или 2 |
Компилятор принимает только синтаксис, включенный в спецификацию ISO/IEC 23270:2006 C# (2.0). |
ISO-1или 1 |
Компилятор принимает только синтаксис, включенный в спецификацию ISO/IEC 23270:2003 C# (1.0/1.2). |