2010-02-10 22 views
28

Para solucionar una instalación, a veces solo quiero una respuesta rápida a qué versión de .NET está instalada.¿Hay alguna forma de determinar la versión de .NET Framework desde la línea de comandos?

¿Hay alguna forma de determinar la versión de .NET Framework en un sistema Windows estándar, aparte de mirar los directorios?

NOTA: Esto no es para una máquina de desarrollo, justo fuera de la caja de ventanas

las siguientes obras, pero estoy buscando una manera más sencilla.

dir% windir% \ Microsoft.Net \ Framework \ v *

Directory of C:\Windows\Microsoft.Net\Framework 

07/13/2009 07:20 PM <DIR>   v1.0.3705 
07/13/2009 07:20 PM <DIR>   v1.1.4322 
01/20/2010 01:16 PM <DIR>   v2.0.50727 
07/13/2009 09:37 PM <DIR>   v3.0 
01/20/2010 01:02 PM <DIR>   v3.5 
02/10/2010 03:20 AM <DIR>   v4.0.21006 

ACTUALIZACIÓN: No es una solución, pero otro listado de directorio con formato fresco

dir% windir% \ Microsoft. Net \ Framework \ v */O: -N/B

v4.0.21006 
v3.5 
v3.0 
v2.0.50727 
v1.1.4322 
v1.0.3705 
+1

¿Cómo desea utilizar la información? En un guion? De lo contrario, no sé qué sería más simple que un 'dir' –

+0

Esto es para soporte; Estaba tratando de ayudar a mi padre anciano; Simplemente generando imágenes para que una persona mayor que no sea una computadora escriba "dir% WINDIR% \ Microsoft.Net \ Framework \ v *" por teléfono. Eso es lo que me hizo pensar que debe haber una mejor manera – Noah

+0

¡Es hora de instalar CrossLoop en la computadora de tu padre! :) – Dave

Respuesta

9

Según su actualización que indica que es para pasear a un usuario final no experto en tecnología, sugiero ir al sitio de Scott Hanselman http://www.smallestdotnet.com (use Internet Explorer) que usa la cadena de agente de usuario para indicarle .NET Framework tiene y le da recomendaciones para obtener la última versión de la manera más eficiente.

respuesta Antiguo
Con PowerShell se podía hacer esto (aunque la presencia de PowerShell ya implica al menos .NET 2,0)

Get-ChildItem "$($Env:WinDir)\Microsoft.Net\Framework" -i mscorlib.dll -r | 
    ForEach-Object { $_.VersionInfo.ProductVersion } 

No sé si hay una manera comparable a obtener la información de la versión en cmd.exe crujiente simple.

0

EDITAR: mi respuesta es irrelevante para la pregunta de OP (que fue editada después de que respondí originalmente).

De acuerdo con MSDN puede usar el registro también para verificar las versiones instaladas.

Además, el sitio this afirma que hay una aplicación de línea de comandos llamada csc que puede usar, aunque no lo he probado, utilizo el método de registro durante las instalaciones que ejecuto.

20
reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /r 

La entrada superior es la versión más reciente del marco instalado.

Nota: Esto no funciona con la versión 1.x del marco.

Actualización: Me perdí el comentario de que estás buscando algo que decirle a tu padre por teléfono. Si ese es el caso, el comando anterior probablemente no sea el mejor enfoque para ti. Tal vez sea mejor que le diga a su padre que abra el Explorador de Windows y lo lleve al directorio de .NET Framework y que le indique los números allí.

+0

¿se puede hacer esto contra máquinas a través de una red? IMO esta es la mejor respuesta ya que ofrece versiones de "parche" como 4.5 y 4.5.1 – BlackICE

+1

La versión de red es simple: consulta de registro "\\ \ HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP"/s/v versión | versión de findstr/i | sort/+ 26 – BlackICE

9

basta con abrir el símbolo del sistema VS2008 y escriba clrver

+0

Y la máquina del usuario final no va a tener VS2008. – Joe

+4

gracias por el voto negativo después de que la publicación se actualizó con información que no tenía en el momento en que sugerí la respuesta. – Dave

+3

Realmente creo que los votos atrasados ​​deberían costar más representantes (y liberarse después de que hayas logrado una determinada reputación por ti mismo), de modo que los votos a la baja se reserven para respuestas que están completamente equivocadas. Esta respuesta no garantiza un voto a la baja. – Josh

0

Hay un artículo publicado en CodeProject que puede hacer exactamente lo que además de su línea de comandos basada.

Espero que esto ayude.

-2

El número de versión más alto de esa lista de directorio es la versión instalada.

Como puede ver, cualquier versión incluye todas las versiones anteriores, por lo que debe verificar el soporte de una versión específica = verificar para ese directorio específico.

+1

"cualquier versión incluye todas las versiones anteriores" - no, no es así. v2.0 no incluye 1.0, por ejemplo. –

+0

@Igor ¿eh qué? Si tiene 2.0, ¿no se ejecutan todas las aplicaciones 1.0? – Joshua

+0

la pregunta era sobre * versiones instaladas * de .NET Framework, y no dije nada acerca de ejecutar la aplicación v1.0 en framework v2.0 –

0

Lo siguiente detectaría si .NET Framework 3.5 está instalado o no .. y si no está instalado lo instalará. Simplemente ejecute esto en el símbolo del sistema.

if exist "%WINDIR%\Microsoft.Net\Framework\v3.5" goto end start /wait .\Framework\dotnetfx.exe /q /norestart" :end 

Si desea detectar otras versiones simplemente reemplazan con v3.5 v2.0 o v1.0 como sea el caso. Además, si no se detecta .net, la instalación del .NET Framework se haría en modo silencioso, es decir, sin interfaz de usuario o interacción del usuario.

Cuestiones relacionadas