¿Qué versión de C# estoy usando?

Resuelto Salvador Dali asked hace 10 años • 21 respuestas

Quiero saber qué versión de C# estoy usando. Si usara Python, haría algo como python -Vdesde la línea de comando o escribiría:

import sys
print sys.version

En PHP haría algo como esto: phpinfo();en java:java -version

Pero no pude encontrar cómo lograr esto en C#.

Esta pregunta no la responde, aunque el nombre sugiere que debería hacerlo.

Entendí que depende del marco .NET, pero ¿existe alguna forma programática de determinar mi marco? Me refiero a sin ir al directorio y comprobar el nombre de mis carpetas .NET.

Salvador Dali avatar Oct 23 '13 11:10 Salvador Dali
Aceptado

Depende del .NET Frameworkque uses. Consulte la respuesta de Jon Skeet sobre Versiones.

Aquí hay una versión corta de su respuesta.

C# 1.0 lanzado con .NET 1.0

C# 1.2 (por extraño que parezca); lanzado con .NET 1.1

C# 2.0 lanzado con .NET 2.0

C# 3.0 lanzado con .NET 3.5

C# 4.0 lanzado con .NET 4

C# 5.0 lanzado con .NET 4.5

C# 6.0 lanzado con .NET 4.6

C# 7.0 lanzado con .NET 4.6.2

C# 7.3 lanzado con .NET 4.7.2

C# 8.0 lanzado con NET Core 3.0

C# 9.0 lanzado con NET 5.0

C# 10.0 lanzado con NET 6.0

C# 11.0 lanzado con NET 7.0

C# 12.0 lanzado con NET 8.0

Praveen avatar Oct 23 '2013 04:10 Praveen

Si bien esto no responde a su pregunta directamente, lo pongo aquí porque Google mostró esta página primero en mis búsquedas cuando buscaba esta información.

Si está utilizando Visual Studio , puede hacer clic derecho en su proyecto -> Propiedades -> Construir -> Avanzado. Esto debería enumerar las versiones disponibles, así como la que está usando su proyecto.

ingrese la descripción de la imagen aquí

Darth avatar Nov 03 '2017 09:11 Darth

No puede averiguar qué versión de lenguaje C# utilizó el compilador para producir el ensamblado y, por lo tanto, no hay ningún código que pueda escribir para detectarlo en tiempo de ejecución.

En el momento de la compilación, la versión de C# se define configurando el archivo de proyecto para el proyecto (se puede ver en la configuración VS del proyecto como se muestra en otra respuesta ) y el cambio explícito o implícito se pasa al compilador si se compila directamente con CSC ( ¿Cómo le digo al ¿Compilador Roslyn C# para usar una versión específica de .NET? )

La única versión que puede obtener en tiempo de ejecución es la versión del marco; mire la versión de uno de los ensamblajes principales, es decir

 Console.Write(typeof(string).Assembly.ImageRuntimeVersion);

Obtener la versión del compilador de C# es algo más difícil, pero debería poder adivinar la versión comprobando qué versión del marco se utiliza.

Si está utilizando el compilador de línea de comandos (csc.exe), puede consultar la ayuda para ver la versión del compilador (también necesitará conocer la versión de Framework de todos modos):

C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc /?
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1

Tenga en cuenta que cada versión del compilador puede apuntar a todas las versiones anteriores de C#; siguiendo el comando del compilador de Roslyn que informa las versiones 1-11 de C# compatibles:

"C:\Program Files\Microsoft Visual 
  Studio\2022\Preview\MSBuild\Current\Bin\Roslyn\csc.exe" /langversion:?
Alexei Levenkov avatar Oct 23 '2013 05:10 Alexei Levenkov