Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Opción 'option' no válida para LangVersion. Use ? para enumerar los valores admitidos.
Este error se produce si usó la configuración de proyecto o el modificador de la línea de comandos LangVersion, pero no especificó una opción de lenguaje válida. Para resolver este error, compruebe la sintaxis de línea de comandos o la configuración de proyecto, y cambie a una de las opciones enumeradas.
Por ejemplo, al compilar con csc -langversion:ISO se generará el error CS1617.
Cómo enumerar las versiones de idioma admitidas
Para ver una lista de versiones de idioma compatibles, haga referencia a la tabla de este artículo, compile con -langversion:?o establezca <LangVersion>?</LangVersion> temporalmente en el archivo de proyecto antes de compilar.
Uso de la tabla de referencia (recomendado)
La manera más confiable de ver las versiones de idioma compatibles es consultar la tabla de referencia al final de este artículo, que enumera todas las versiones de idioma admitidas actualmente.
Uso del compilador de C# directamente
Use la -langversion:? opción con el compilador de C#. Debe encontrar la ruta de acceso a csc.dll en la instalación del SDK de .NET:
dotnet exec "/path/to/dotnet/sdk/version/Roslyn/bincore/csc.dll" -langversion:?
Por ejemplo, en Linux con el SDK de .NET 8:
dotnet exec "/usr/lib/dotnet/sdk/8.0.117/Roslyn/bincore/csc.dll" -langversion:?
La ruta de acceso exacta varía en función del sistema operativo y la versión del SDK de .NET.
Uso de un archivo de proyecto con salida de diagnóstico (no recomendado)
Puede establecer <LangVersion>?</LangVersion> temporalmente en el archivo de proyecto y compilar con verbosidad de diagnóstico.
dotnet build -v diagnostic
Busque la línea "Versiones de idioma compatibles:" en la salida.
Advertencia
Si se establece <LangVersion>?</LangVersion> en un archivo de proyecto, se producirá un error en la compilación después de mostrar las versiones admitidas. Esto se debe a que el compilador sale después de enumerar las versiones en lugar de seguir compilando el código. Quite esta configuración después de ver la lista.
Valores válidos para -langversion
Los valores válidos para las versiones de lenguaje dependen de la versión de .NET que se use. Consulte las reglas de versión de lenguaje para obtener más información sobre qué versión de lenguaje está disponible con qué versión de .NET. Si recibe este error al intentar usar una versión de lenguaje más reciente, puede cambiar a una versión de lenguaje inferior o actualizar el SDK de .NET a una versión que admita la versión del lenguaje.
En la tabla siguiente se especifican los valores válidos actuales para -langversion:
| Valor | Significado |
|---|---|
preview |
El compilador acepta toda la sintaxis de lenguaje válida de la última versión preliminar. |
latest |
El compilador acepta la sintaxis de la última versión del compilador (incluida las versión secundaria). |
latestMajoro bien default |
El compilador acepta la sintaxis de la versión principal más reciente del compilador. |
15.0 |
El compilador acepta solo la sintaxis que se incluye en C# 15 o inferior. |
14.0 |
El compilador acepta solo la sintaxis que se incluye en C# 14 o inferior. |
13.0 |
El compilador solo acepta la sintaxis que se incluye en C# 13 o versiones anteriores. |
12.0 |
El compilador solo acepta la sintaxis que se incluye en C# 12 o versiones anteriores. |
11.0 |
El compilador solo acepta la sintaxis que se incluye en C# 11 o versiones anteriores. |
10.0 |
El compilador solo acepta la sintaxis que se incluye en C# 10 o versiones anteriores. |
9.0 |
El compilador solo acepta la sintaxis que se incluye en C# 9 o versiones anteriores. |
8.0 |
El compilador acepta solo la sintaxis que se incluye en C# 8.0 o versiones anteriores. |
7.3 |
El compilador acepta solo la sintaxis que se incluye en C# 7.3 o versiones anteriores. |
7.2 |
El compilador acepta solo la sintaxis que se incluye en C# 7.2 o versiones anteriores. |
7.1 |
El compilador acepta solo la sintaxis que se incluye en C# 7.1 o versiones anteriores. |
7 |
El compilador acepta solo la sintaxis que se incluye en C# 7.0 o versiones anteriores. |
6 |
El compilador acepta solo la sintaxis que se incluye en C# 6.0 o versiones anteriores. |
5 |
El compilador acepta solo la sintaxis que se incluye en C# 5.0 o versiones anteriores. |
4 |
El compilador acepta solo la sintaxis que se incluye en C# 4.0 o versiones anteriores. |
3 |
El compilador acepta solo la sintaxis que se incluye en C# 3.0 o versiones anteriores. |
ISO-2o bien 2 |
El compilador acepta solo la sintaxis que se incluye en ISO/IEC 23270:2006 C# (2.0). |
ISO-1o bien 1 |
El compilador acepta solo la sintaxis que se incluye en ISO/IEC 23270:2003 C# (1.0/1.2). |