2008-10-08 22 views
12

Necesito determinar la versión más alta de .NET Framework instalada en una máquina de escritorio desde el código C \ C++. Parece que puedo repetir las carpetas en %systemroot%\Microsoft.NET\Framework, pero parece un error. ¿Hay una mejor manera? ¿Quizás una clave de registro que pueda inspeccionar? Gracias.Determine la versión más alta de .NET Framework

Respuesta

10

Utilice la ubicación Windows RegistryHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP.

+0

Sí, HKLM \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP sho Sería un poco más fácil. Parece que tendré que repetir las subclaves y luego consultar el valor de la Versión. Gracias. – Charles

6

claves de registro para el .NET Framework comienzan así:

HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\ 

Dependiendo de la versión, el resto de la clave será diferente (marque this page).

Puede consultar cómo acceder al registro en el artículo de MSDN Using the registry in a C++ application.

0

La siguiente se supone que le dará la respuesta, pero parece terriblemente roto :(

c:\Program Files>clrver 
Versions installed on the machine: 
v2.0.50727 
+5

La versión CLR no es necesariamente la misma que la versión .Net. .Net v2.0 actualizó el CLR sobre v1.1, pero .Net v3.0 y v3.5 no cambió el CLR, por lo que sigue siendo "V2.0.50727" –

5

Si usted está tratando de hacer esto desde el código administrado, echar un vistazo a este article, que envuelve todo de la lógica necesaria para determinar si se ha instalado una versión marco específico.

de lo contrario, echar un vistazo a el blog de Aaron here, lo que da un método de C/C++ para hacer la misma cosa.

Cuestiones relacionadas