El registro es la forma oficial de detectar si está instalada una versión específica del Framework.
Las claves de registro que se necesitan cambiar según la versión de Framework que esté buscando:
Clave de registro de versión de marco
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ .NETFramework \ Policy \ v1.0 \ 3705
1.1 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v1.1.4322 \ Instalar
2.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Instalar
3.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Setup \ InstallSuccess
3.5 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Install
4.0 Perfil del cliente HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Install
4.0 Full Profile HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Install
Generalmente buscas:
"Install"=dword:00000001
excepto .NET 1.0, donde el valor es una cadena ( REG_SZ
) en lugar de un número ( REG_DWORD
).
La determinación del nivel del service pack sigue un patrón similar:
Clave de registro de versión de marco
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Componentes instalados \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Versión
1.0 [1] HKLM \ Software \ Microsoft \ Configuración activa \ Componentes instalados \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Versión
1.1 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v1.1.4322 \ SP
2.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ SP
3.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ SP
3.5 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ SP
4.0 Perfil del cliente HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client \ Servicing
4.0 Perfil completo HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full \ Servicing
[1] Windows Media Center o Windows XP Tablet Edition
Como puede ver, determinar el nivel de SP para .NET 1.0 cambia si está ejecutando Windows Media Center o Windows XP Tablet Edition. Nuevamente, .NET 1.0 usa un valor de cadena mientras que todos los demás usan un DWORD.
Para .NET 1.0, el valor de la cadena en cualquiera de estas claves tiene un formato de #, #, ####, #. El último # es el nivel de Service Pack.
Si bien no solicité explícitamente esto, si desea conocer el número de versión exacto de Framework, usaría estas claves de registro:
Clave de registro de versión de marco
-------------------------------------------------- ----------------------------------------
1.0 HKLM \ Software \ Microsoft \ Active Setup \ Componentes instalados \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ Versión
1.0 [1] HKLM \ Software \ Microsoft \ Configuración activa \ Componentes instalados \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ Versión
1.1 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v1.1.4322
2.0 [2] HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Versión
2.0 [3] HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v2.0.50727 \ Increment
3.0 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.0 \ Version
3.5 HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5 \ Version
4.0 Perfil del cliente HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
4.0 Perfil completo HKLM \ Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Version
[1] Windows Media Center o Windows XP Tablet Edition
[2] .NET 2.0 SP1
[3] .NET 2.0 Original Release (RTM)
Nuevamente, .NET 1.0 usa un valor de cadena mientras que todos los demás usan un DWORD.
Notas adicionales
para .NET 1.0, el valor de cadena en cualquiera de estas claves tiene un formato de #,#,####,#
. La #,#,####
parte de la cadena es la versión de Framework.
para .NET 1.1, usamos el nombre de la clave de registro en sí, que representa el número de versión.
Finalmente, si observa las dependencias, .NET 3.0 agrega funcionalidad adicional a .NET 2.0, por lo que tanto .NET 2.0 como .NET 3.0 deben evacuarse como instalados para decir correctamente que .NET 3.0 está instalado. Del mismo modo, .NET 3.5 agrega una funcionalidad adicional a .NET 2.0 y .NET 3.0, por lo que .NET 2.0, .NET 3.0 y .NET 3. deberían evaluar su instalación para decir correctamente que .NET 3.5 está instalado.
.NET 4.0 instala una nueva versión de CLR (CLR versión 4.0) que puede ejecutarse en paralelo con CLR 2.0.
Actualización para .NET 4.5
No habrá una v4.5
clave en el registro si está instalado .NET 4.5. En su lugar, debe verificar si la HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full
clave contiene un valor llamado Release
. Si este valor está presente, se instala .NET 4.5; de lo contrario, no lo está. Más detalles se pueden encontrar aquí y aquí .