¿Cómo encuentro la versión .NET?

258

¿Cómo puedo saber qué versión de .NET está instalada?

Estoy buscando algo tan simple como "java -version" que puedo escribir en el símbolo del sistema y que me dice las versiones actuales instaladas.

Mejor agrego que Visual Studio puede no estar instalado; esto es típicamente algo que quiero saber sobre una máquina cliente.

sepang
fuente
2
Vaya a ejecutar y ejecutar este comando: wmic / namespace: \\ root \ cimv2 ruta win32_product donde "name like '%%. NET %%'" obtenga la versión
HENG Vongkol

Respuestas:

250

Simplemente escriba cualquiera de los siguientes comandos para obtener la última versión en la primera línea.

1. CSC
2. GACUTIL /l ?
3. CLRVER

Solo puede ejecutarlos desde el símbolo del sistema de Visual Studio si tiene instalado Visual Studio, o si tiene el SDK de .NET framework, luego el símbolo del sistema del SDK.

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

El último comando (5) enumerará todas las versiones (excepto 4.5) de .NET instalado, la última primero .
Debe ejecutar el cuarto comando para ver si .NET 4.5 está instalado.

A continuación se ofrecen otras tres opciones del símbolo del sistema de PowerShell.

6.   [environment]::Version
7.   $PSVersionTable.CLRVersion
8.   gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
     where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release

El último comando (8) le dará todas las versiones, incluido .NET 4.5.

Binoj Antony
fuente
66
'CSC' solo funcionará desde el símbolo del sistema de Visual Studio (de forma predeterminada). También solo le dará la versión máxima del marco .NET a la que se dirige esa versión del compilador. - Si tiene VS2005 y VS2008 instalados, las diferentes versiones de CSC informarán diferentes versiones.
Matt Lacey
15
cscgenera la versión del compilador de C #, no la versión de .NET Framework.
Timwi
44
El último comando no devolvió la versión 4.5, aunque creo que lo tengo instalado. La respuesta en stackoverflow.com/questions/3487265/… lo incluyó.
lmsurprenant
2
El último comando no muestra la última versión. Podemos buscar la versión en appwiz.cpl o el comando 'wmic product' también es útil. windows-commandline.com/find-net-version-on-your-computer
Giri
11
¡Salud para el número 8!
Lionet Chen
330

Hay una manera más fácil de obtener la versión exacta .NET instalada en su máquina desde un indicador de cmd. Simplemente siga las siguientes instrucciones;

  1. Abra el símbolo del sistema (es decir, Windows + R → escriba "cmd").
  2. Escriba el siguiente comando, todo en una línea:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(Esto enumerará todas las versiones de .NET).

  1. Si desea verificar la última versión de .NET 4.
  2. Escriba las siguientes instrucciones, en una sola línea:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

Encuentre la imagen adjunta a continuación para ver cómo se muestra.

Ingrese la descripción de la imagen aquí

AnandShanbhag
fuente
44
descubrió que esta es la más fácil y precisa (con el "* \ v4 \ Full" al final), ya que también obtiene la versión secundaria con un solo comando simple.
Ignas Vyšnia
1
Agradable. Quería algo que funcionara en la PC de un usuario y eso es todo. ¡Gracias!
Kelly
66
Agradable pero no muestra los marcos 4.5, 4.6 y 4.7 que están instalados en mi máquina con Windows 7 :(
Zeek2
no del todo exacto; Miro en Panel de control> Programas y características, y no hay signos de .NET .; sin embargo, ejecuto su comando y me da la salida HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Probablemente, .NET se instaló una vez en mi máquina, no se instaló, pero el registro no se limpió
Newton fan 01
39

.NET Version Detector es una utilidad GUI que muestra cuál de las seis (!) Versiones del framework están instaladas.

Phil Devaney
fuente
30

Antes de ir al símbolo del sistema, siga estos pasos ...

Abra Mi PC → haga doble clic en la unidad " C: " → haga doble clic en " Windows " → haga doble clic en " Microsoft.NET " → haga doble clic en " Marco " → Dentro de esta carpeta, habrá carpetas como "v1.0.3705" y / o "v2.0.50727" y / o "v3.5" y / o "v4.0.30319".

Su última versión de .NET estaría en la carpeta con el número v más alto, por lo que si v4.0.30319 está disponible, contendrá su último marco .NET. Sin embargo, la v4.0.30319 no significa que tenga .NET Framework versión 4.0. La v4.0.30319 es su versión del compilador de Visual C #, por lo tanto, para encontrar la versión de .NET Framework, haga lo siguiente.

Vaya a un símbolo del sistema y siga esta ruta:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (o la carpeta con el número v más alto)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

Salida:

Microsoft (R) Visual C # Compiler versión 4.0.30319.17929 para Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. Todos los derechos reservados.

Ejemplo a continuación:

Ingrese la descripción de la imagen aquí

Sunimal Kaluarachchi
fuente
2
Muy bien, pero el resultado es diferente al menos en mi servidor: no se incluyó ningún
Nenotlep
2
para cambiar el tipo de directorio : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319y luego escriba csc.exe, espero que ayude a alguien.
shaijut
1
Es más eficiente cuando inicias sesión con una cuenta de usuario limitada.
Rzassar
10

¡Esta respuesta es aplicable solo a .NET Core!

Si escribe dotnet --versionsu terminal de elección, imprimirá la versión del SDK de .NET Core en uso.

Obtenga más información sobre el dotnetcomando aquí .

FelixAVeras
fuente
15
Es aplicable solo a .NET Core.
Sunil
9

Para la versión del marco que está instalada, varía según los paquetes de servicio y las revisiones que haya instalado. Echa un vistazo a esta página de MSDN para más detalles. Sugiere buscar %systemroot%\Microsoft.NET\Frameworkpara obtener la versión.

Environment.Version te dará programáticamente la versión de CLR.

Tenga en cuenta que esta es la versión del CLR, y no necesariamente la misma que la última versión del marco que ha instalado (.NET 3.0 y 3.5 usan v2 del CLR).

adrianbanks
fuente
Environment.Version parece darle la versión de la aplicación. Digamos, desde LinqPad quiero encontrar la versión .NET contra la que se ejecuta y no me da la versión .NET, sino la versión LinqPad
Naomi
@Naomi: no, da la versión del CLR. De los documentos: "Obtiene un objeto Version que describe los números mayor, menor, de compilación y revisión del Common Language Runtime". .
adrianbanks
¿Qué se supone que debo ver en este objeto? Estoy viendo 2.0.50727.5472 2 Minor 0 Build 50727 Revisión 5472 MajorRevision 0 MinorRevision 5472 que no me parece el tiempo de ejecución de la versión CLR
Naomi
Cargué la última versión de LinqPad y ahora estoy obteniendo 4.0.30319.18052 para la versión. La versión anterior estaba dirigida a la versión .NET 3.5. Entonces, todavía estoy un poco confundido: ¿muestra realmente la versión CLR?
Naomi
1
@Naomi: Sí, muestra la versión CLR. 2.0.50727.5472 es la versión de .Net 2.0 CLR, que también se utiliza para .Net 3.0 y 3.5. 4.0.30319.18052 es .Net 4.0, que tiene un número de versión diferente.
adrianbanks
8

MSDN lo detalla aquí muy bien sobre cómo verificarlo desde el registro:

Para encontrar versiones de .NET Framework visualizando el registro (.NET Framework 1-4)

  1. En el menú Inicio, elija Ejecutar.
  2. En el cuadro Abrir, ingrese regedit.exe. Debe tener credenciales administrativas para ejecutar regedit.exe.
  3. En el Editor del registro, abra la siguiente subclave:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP

Las versiones instaladas se enumeran en la subclave NDP. El número de versión se almacena en la entrada Versión. Para .NET Framework 4, la entrada Versión está bajo la subclave Cliente o Completa (bajo NDP), o bajo ambas subclaves.

Para encontrar versiones de .NET Framework visualizando el registro (.NET Framework 4.5 y posterior)

  1. En el menú Inicio, elija Ejecutar.
  2. En el cuadro Abrir, ingrese regedit.exe. Debe tener credenciales administrativas para ejecutar regedit.exe.
  3. En el Editor del registro, abra la siguiente subclave:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full

Tenga en cuenta que la ruta a la subclave completa incluye la subclave Net Framework en lugar de .NET Framework

Busque un valor DWORD llamado Release. La existencia de la versión DWORD indica que .NET Framework 4.5 o posterior se ha instalado en esa computadora.

ingrese la descripción de la imagen aquí

Nota : La última fila de la instantánea anterior que obtuvo lecturas recortadas On all other OS versions: 461310. Hice mi mejor esfuerzo para evitar que la información se recortara mientras tomaba la captura de pantalla, pero la tabla era demasiado grande.

RBT
fuente
6

Si abre un símbolo del sistema y escribe los dos comandos siguientes, se enumerarán todas las versiones de framework que están instaladas en la máquina actual (cada una se almacena en un directorio separado dentro de este directorio).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D
Michael Arnell
fuente
8
No se recomienda porque esto es posiblemente engañoso. Si actualizó 4.0 => 4.5.2, el directorio solo puede mostrar v4.0.30319. Ver el ejemplo de Sunimal Kaluarachchi.
Dinah
6

Simplemente escriba lo siguiente en la línea de comando:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Su versión de dotnet se mostrará como el número más alto.

Steve Junior
fuente
1
Muestra todas las versiones hasta la 4.0, pero por ejemplo no la 4.5.
pinowthebird
4

Para obtener las versiones instaladas en la línea de comandos, recomiendo usar net-version .

  • Es solo un solo binario .
  • Utiliza las pautas proporcionadas por mi Microsoft para obtener información sobre la versión.
  • No requiere que se instale el SDK.
  • O el símbolo del sistema de Visual Studio.
  • No requiere que use regedit y busque las claves de registro usted mismo. Incluso puede canalizar la salida en una herramienta de línea de comando si es necesario.

El código fuente está disponible en github.com

Divulgación completa: creé esta herramienta por frustración.

Dan Esparza
fuente
Si ese conjunto (incompleto) de información de versión es lo suficientemente bueno para usted, más poder para usted.
Dan Esparza
@ Shiva Indicas que crees que ese comando muestra todo, y estoy respetuosamente en desacuerdo contigo. Consulte el enlace con las pautas proporcionadas por Microsoft. Por ejemplo: su consulta no muestra que tengo instalado .NET 4.6.1. Además, indica que tengo instalado 'CDF', que no es una versión de .NET Framework.
Dan Esparza
4

Si hace esto con bastante frecuencia (como suelo hacerlo), puede crear un acceso directo en su escritorio de la siguiente manera:

  1. Haga clic derecho en el escritorio y seleccione NuevoAcceso directo .
  2. En el campo de ubicación, pegue esta cadena: powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"(esto es de la publicación de Binoj Antony ).
  3. Presiona Siguiente . Dé un nombre al atajo y finalice .

(NOTA: no estoy seguro de si esto funciona para 4.5, pero puedo confirmar que funciona para 4.6 y versiones anteriores a 4.5).

kmote
fuente
Las versiones 1.0 y 1.1 no se muestran en la clave de configuración de NET Framework , aunque sí existe en la carpeta% systemroot% \ Microsoft.NET \ Framework \.
samis
4

Aquí está el script de Power Shell que utilicé tomando la referencia de:

https://stackoverflow.com/a/3495491/148657

$Lookup = @{
    378389 = [version]'4.5'
    378675 = [version]'4.5.1'
    378758 = [version]'4.5.1'
    379893 = [version]'4.5.2'
    393295 = [version]'4.6'
    393297 = [version]'4.6'
    394254 = [version]'4.6.1'
    394271 = [version]'4.6.1'
    394802 = [version]'4.6.2'
    394806 = [version]'4.6.2'
    460798 = [version]'4.7'
    460805 = [version]'4.7'
    461308 = [version]'4.7.1'
    461310 = [version]'4.7.1'
    461808 = [version]'4.7.2'
    461814 = [version]'4.7.2'
    528040 = [version]'4.8'
    528049 = [version]'4.8'
}

# For One True framework (latest .NET 4x), change the Where-Oject match 
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -name Version, Release -EA 0 |
  Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
  Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}}, 
@{name = "Product"; expression = {$Lookup[$_.Release]}}, 
Version, Release

El script anterior hace uso del registro y nos da el número de actualización de Windows junto con .Net Framework instalado en una máquina.

Referencia: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- consultar-el-registro-en-código-net-framework-45-and-later

Aquí están los resultados para lo mismo cuando se ejecuta ese script en dos máquinas diferentes

  1. Donde .NET 4.7.2 ya estaba instalado:

ingrese la descripción de la imagen aquí

  1. Donde no se instaló .NET 4.7.2:

ingrese la descripción de la imagen aquí

Raghav
fuente
3

Dios mío, ¿tanto lío para encontrar la versión de .NET Framework instalada?

Windows> Buscar> Visual Studio Installer> para la versión instalada de VS, toque Más> Modificar> Componentes individuales y vea allí:

ingrese la descripción de la imagen aquí

píxel
fuente
2

Prueba .NET Checkerpor Scott Hanselman.

AI
fuente
1
Una gran sugerencia Sin embargo, el OP indicó específicamente una herramienta de línea de comando.
Dan Esparza
1

clrverEs excelente. Simplemente ejecútelo en el indicador .NET y enumerará todas las versiones de framework disponibles.

James Poulose
fuente
3
Esta herramienta requiere no solo que se instale .NET Framework, sino también Visual Studio. El OP indicó que Visual Studio podría no estar instalado.
Dan Esparza
Y no muestra todas (o incluso la mayoría) de las versiones. Para mi PC Win7, solo se muestran V2.0 y 4.0, pero algunos de los otros métodos anteriores también muestran versiones: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 y 4.7.
Zeek2
1
@Zeek clrvermuestra los tiempos de ejecución .net instalados , que se pueden compartir entre las versiones .net . Vea Cómo: Determinar qué versiones de .NET Framework están instaladas e identificar la versión de .NET que está ejecutando (2.0, 4.5, 4.5.1 o 4.5.2)
samis
1

Para cualquiera que ejecute Windows 10 1607 y busque .net 4.7 . Haga caso omiso de todo lo anterior.

No está en el Registro , en la carpeta C: \ Windows \ Microsoft.NET ni en la lista de Programas instalados o en la pantalla WMIC de esa misma lista.

Busque "actualizaciones instaladas" KB3186568.

skrie
fuente
1
Está en el registro, como lo documenta Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- el Releasevalor será 460798de 4.7 en W10 1607.
Richard Deeming el
No lo es. La clave "Completa" ni siquiera existe.
skrie
1
Lo es, y lo hace. Estoy ejecutando 1607, ¡y estoy mirando la Fullclave ahora mismo!
Richard Deeming el
0

Si está desarrollando alguna aplicación .Net (por ejemplo, aplicación web), puede hacer 1 línea de código de error (como invocar un nombre de función incorrecto) y volver a cargar su página, se mostrará la versión .Netingrese la descripción de la imagen aquí

Sy C Dang
fuente
Probablemente no sea la forma más limpia, pero sí una opción que olvidé por completo. Un simple GACUTIL /l ?en su PowerShell (desarrollador) produce lo mismo.
B - rian
-1

Hay una manera más fácil de obtener la versión exacta .NET instalada en su máquina desde un indicador de cmd. Simplemente siga las siguientes instrucciones;

Abra el símbolo del sistema (es decir, Windows + R → escriba "cmd") y escriba el siguiente comando, todo en una línea:% windir% \ Microsoft.NET \ FrameWork, y luego navegue al directorio con el último número de versión.

Consulte http://dotnettec.com/check-dot-net-framework-version/

Julia
fuente
Recibo este error al intentar seguir su respuesta:'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel