Compartir a través de


Procedimiento para determinar qué versiones de .NET Framework están instaladas

Nota:

Este artículo es específico de .NET Framework. Para determinar los SDK y entornos de ejecución de .NET Core y .NET 5, y versiones posteriores, que están instalados, vea Cómo comprobar que .NET Core ya está instalado.

Es posible instalar y ejecutar varias versiones de .NET Framework en un equipo.

  • Si desea comprobar las versiones en su propio equipo, la manera más fácil es a través de Panel de control>Programas>Programas y características, o bien en Configuración en Aplicaciones>Aplicaciones instaladas. Use también estas herramientas mantenidas por la comunidad.
  • Si se trata de un desarrollador de aplicaciones, es posible que necesite conocer las versiones de .NET Framework que están instaladas en el equipo del usuario de la aplicación. El registro contiene una lista de las versiones de .NET Framework instaladas en el equipo. También es posible consultar la propiedad RuntimeInformation.FrameworkDescription.
  • Para buscar la versión de CLR, que se versiona por separado, consulte Buscar versiones de CLR.

.NET Framework está formado por dos componentes principales con versiones separadas:

  • Un conjunto de ensamblados, que son colecciones de tipos y recursos que proporcionan funciones a las aplicaciones. .NET Framework y los ensamblados comparten el mismo número de versión. Por ejemplo, las versiones de .NET Framework incluyen 4.5, 4.6.1 y 4.7.2.
  • Common Language Runtime (CLR), que administra y ejecuta el código de la aplicación. Normalmente, una misma versión de CLR admite varias versiones de .NET Framework. Por ejemplo, la versión de CLR 4.0.30319.xxxxx donde xxxxx es inferior a 42000, admite las versiones 4 a la 4.5.2 de .NET Framework. La versión de CLR mayor o igual que 4.0.30319.42000 admite las versiones de .NET Framework a partir de .NET Framework 4.6.

Sugerencia

Para obtener información sobre cómo identificar las actualizaciones instaladas de cada versión de .NET Framework, consulte Procedimiento: determinar qué actualizaciones de .NET Framework están instaladas.

Herramientas mantenidas por la comunidad

La comunidad ha creado herramientas que ayudan a detectar qué versiones de .NET Framework están instaladas:

Propiedad RuntimeInformation.FrameworkDescription

Para consultar mediante programación la versión de .NET en la que se ejecuta la aplicación, use la propiedad RuntimeInformation.FrameworkDescription. Si la aplicación se ejecuta en .NET Framework, la salida será similar a la siguiente:

.NET Framework 4.8.4250.0

En cambio, si la aplicación se ejecuta en .NET Core o .NET 5 y versiones posteriores, la salida será similar a la siguiente:

.NET Core 3.1.9
.NET 5.0.0

Registro

Use el registro para detectar qué versión de .NET Framework está instalada. Las claves son diferentes para .NET Framework 1.0-4.0 y .NET Framework 4.5 y versiones posteriores. Use el Editor del registro, PowerShell o código para comprobar el registro.

.NET Framework 4.5 y versiones posteriores

La versión de .NET Framework (4.5 y posteriores) instalada en un equipo se muestra en el Registro, en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Si falta la subclave Full, significa que .NET Framework 4.5 o superior no está instalado.

Nota

La carpeta NET Framework Setup del Registro no comienza con un punto.

El valor REG_DWORD de Release del Registro representa la versión de .NET Framework que está instalada.

Versión de .NET Framework Valor de Release
.NET Framework 4.5 Todos los sistemas operativos Windows: 378389
.NET Framework 4.5.1 En Windows 8.1 y Windows Server 2012 R2: 378675
En todos los demás sistemas operativos Windows: 378758
.NET Framework 4.5.2 Todos los sistemas operativos Windows: 379893
.NET Framework 4.6 En Windows 10: 393295
En todos los demás sistemas operativos Windows: 393297
.NET Framework 4.6.1 En sistemas con la actualización de noviembre de Windows 10: 394254
En todos los demás sistemas operativos Windows (incluido Windows 10): 394271
.NET Framework 4.6.2 En la Actualización de aniversario de Windows 10 y Windows Server 2016: 394802
En todos los demás sistemas operativos Windows (incluidos otros sistemas operativos Windows 10): 394806
.NET Framework 4.7 En Windows 10 Creators Update: 460798
En todos los demás sistemas operativos Windows (incluidos otros sistemas operativos Windows 10): 460805
.NET Framework 4.7.1 En Windows 10 Fall Creators Update y Windows Server, versión 1709: 461308
En todos los demás sistemas operativos Windows (incluidos otros sistemas operativos Windows 10): 461310
.NET Framework 4.7.2 En la actualización de Windows 10 de abril de 2018 y Windows Server, versión 1803: 461808
En todos los sistemas operativos diferentes de la Actualización de abril de 2018 de Windows 10 y Windows Server, versión 1803: 461814
.NET Framework 4.8 En la actualización de Windows 10 de mayo de 2019 y en la de noviembre de 2019: 528040
En la actualización de 10 de mayo de 2020, de octubre de 2020, de mayo de 2021, de noviembre de 2021 y de 2022 de Windows 10: 528372
En Windows 11 y Windows Server 2022: 528449
En todos los demás sistemas operativos Windows (incluidos otros sistemas operativos Windows 10): 528049
.NET Framework 4.8.1 En la actualización de Windows 11 2022 y la actualización de Windows 11 2023: 533320
Todos los demás sistemas operativos Windows: 533325

Versión mínima

Para determinar si hay una versión mínima de .NET Framework, busque un valor REG_DWORD de Release mayor o igual que el valor correspondiente que se muestra en la tabla siguiente. Por ejemplo, si la aplicación se ejecuta en .NET Framework 4.8 o en una versión posterior, pruebe un valor REG_DWORD de Release que sea mayor o igual que 528040.

Versión de .NET Framework Valor mínimo
.NET Framework 4.5 378389
.NET Framework 4.5.1 378675
.NET Framework 4.5.2 379893
.NET Framework 4.6 393295
.NET Framework 4.6.1 394254
.NET Framework 4.6.2 394802
.NET Framework 4.7 460798
.NET Framework 4.7.1 461308
.NET Framework 4.7.2 461808
.NET Framework 4.8 528040
.NET Framework 4.8.1 533320

Uso del Editor del Registro

  1. En el menú Inicio, seleccione Ejecutar, escriba regedit y haga clic en Aceptar.

    (Debe tener credenciales de administrador para ejecutar regedit).

  2. En el Editor del Registro, abra la subclave siguiente:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Si la subclave Full no está presente, significa que .NET Framework 4.5 (o una versión posterior) no está instalado.

  3. Busque una entrada REG_DWORD denominada Release. Si existe, significa que tiene instalado .NET Framework 4.5 o una versión posterior. Su valor se corresponde a una versión concreta de .NET Framework. En la ilustración siguiente, por ejemplo, el valor de la entrada Release es 528040, que es la clave de versión de .NET Framework 4.8.

    Entrada del Registro para .NET Framework 4.5

Uso de PowerShell para comprobar si hay una versión mínima

Use comandos de PowerShell para comprobar el valor de la entrada Release de la subclave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full.

En los ejemplos siguientes se comprueba el valor de la entrada Release para determinar si se ha instalado .NET Framework 4.6.2 o una versión posterior. Este código devuelve True si está instalado y False en caso contrario.

(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802

Consulta del registro mediante código

  1. Use los métodos RegistryKey.OpenBaseKey y RegistryKey.OpenSubKey para obtener acceso a la subclave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full en el Registro de Windows.

    Importante

    Si la aplicación que está ejecutando es de 32 bits y se ejecuta en Windows de 64 bits, las rutas de acceso del Registro serán diferentes de las mostradas anteriormente. El registro de 32 bits está disponible en la subclave HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\. Por ejemplo, la subclave del Registro para .NET Framework 4.5 es HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

  2. Compruebe el valor REG_DWORD de Release para determinar la versión que está instalada. Para que sea compatible con versiones posteriores, puede buscar un valor mayor o igual que el valor que se muestra en la tabla de versiones de .NET Framework.

En el ejemplo siguiente se comprueba el valor de la entrada Release del Registro para buscar las versiones de .NET Framework 4.5-4.8.1 que están instaladas.

Sugerencia

Si todavía no lo ha hecho, agregue la directiva using Microsoft.Win32 o Imports Microsoft.Win32 en la parte superior del archivo de código.

const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";

using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
    if (ndpKey != null && ndpKey.GetValue("Release") != null)
    {
        Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int)ndpKey.GetValue("Release"))}");
    }
    else
    {
        Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
    }
}

// Checking the version using >= enables forward compatibility.
string CheckFor45PlusVersion(int releaseKey)
{
    if (releaseKey >= 533320)
        return "4.8.1 or later";
    if (releaseKey >= 528040)
        return "4.8";
    if (releaseKey >= 461808)
        return "4.7.2";
    if (releaseKey >= 461308)
        return "4.7.1";
    if (releaseKey >= 460798)
        return "4.7";
    if (releaseKey >= 394802)
        return "4.6.2";
    if (releaseKey >= 394254)
        return "4.6.1";
    if (releaseKey >= 393295)
        return "4.6";
    if (releaseKey >= 379893)
        return "4.5.2";
    if (releaseKey >= 378675)
        return "4.5.1";
    if (releaseKey >= 378389)
        return "4.5";
    // This code should never execute. A non-null release key should mean
    // that 4.5 or later is installed.
    return "No 4.5 or later version detected";
}
Private Sub Get45PlusFromRegistry()
    Const subkey As String = "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"

    Using ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)
        If ndpKey IsNot Nothing AndAlso ndpKey.GetValue("Release") IsNot Nothing Then
            Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion(ndpKey.GetValue("Release"))}")
        Else
            Console.WriteLine(".NET Framework Version 4.5 or later is not detected.")
        End If
    End Using
End Sub

' Checking the version using >= enables forward compatibility.
Private Function CheckFor45PlusVersion(releaseKey As Integer) As String
    If releaseKey >= 533320 Then
        Return "4.8.1 or later"
    ElseIf releaseKey >= 528040 Then
        Return "4.8"
    ElseIf releaseKey >= 461808 Then
        Return "4.7.2"
    ElseIf releaseKey >= 461308 Then
        Return "4.7.1"
    ElseIf releaseKey >= 460798 Then
        Return "4.7"
    ElseIf releaseKey >= 394802 Then
        Return "4.6.2"
    ElseIf releaseKey >= 394254 Then
        Return "4.6.1"
    ElseIf releaseKey >= 393295 Then
        Return "4.6"
    ElseIf releaseKey >= 379893 Then
        Return "4.5.2"
    ElseIf releaseKey >= 378675 Then
        Return "4.5.1"
    ElseIf releaseKey >= 378389 Then
        Return "4.5"
    End If
    ' This code should never execute. A non-null release key should mean
    ' that 4.5 or later is installed.
    Return "No 4.5 or later version detected"
End Function

En el ejemplo se muestra una salida como la siguiente:

.NET Framework Version: 4.6.1

Consulta del registro mediante PowerShell

En el ejemplo siguiente se usa PowerShell para comprobar el valor de la entrada Release del Registro para buscar las versiones de .NET Framework 4.5-4.8.1 que están instaladas:

$release = Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release
switch ($release) {
    { $_ -ge 533320 } { $version = '4.8.1 or later'; break }
    { $_ -ge 528040 } { $version = '4.8'; break }
    { $_ -ge 461808 } { $version = '4.7.2'; break }
    { $_ -ge 461308 } { $version = '4.7.1'; break }
    { $_ -ge 460798 } { $version = '4.7'; break }
    { $_ -ge 394802 } { $version = '4.6.2'; break }
    { $_ -ge 394254 } { $version = '4.6.1'; break }
    { $_ -ge 393295 } { $version = '4.6'; break }
    { $_ -ge 379893 } { $version = '4.5.2'; break }
    { $_ -ge 378675 } { $version = '4.5.1'; break }
    { $_ -ge 378389 } { $version = '4.5'; break }
    default { $version = $null; break }
}

if ($version) {
    Write-Host -Object ".NET Framework Version: $version"
} else {
    Write-Host -Object '.NET Framework Version 4.5 or later is not detected.'
}

Este ejemplo sigue la práctica recomendada para la comprobación de versión:

  • Comprueba si el valor de la entrada Release es mayor o igual que el valor de los valores de versión conocidos.
  • Realiza la comprobación en orden, desde la versión más reciente hasta la más antigua.

.NET Framework 1.0-4.0

Cada versión de .NET Framework de 1.1 a 4.0 aparece como una subclave en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP. En la tabla siguiente se muestra la ruta de acceso a cada versión de .NET Framework. Para la mayoría de las versiones, hay un valor REG_DWORD Install de 1 que indica que esta versión está instalada. En estas subclaves, hay también un valor REG_SZ de Version que contiene una cadena de versión.

Nota

La carpeta NET Framework Setup del Registro no comienza con un punto.

Versión de Framework Subclave del Registro Valor
1.0 HKLM\Software\Microsoft\.NETFramework\Policy\v1.0\3705 Install REG_SZ es igual a 1
1.1 HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 Install REG_DWORD es igual a 1
2.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Install REG_DWORD es igual a 1
3.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup InstallSuccess REG_DWORD es igual a 1
3.5 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 Install REG_DWORD es igual a 1
4.0 Client Profile HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client Install REG_DWORD es igual a 1
4.0 Full Profile HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full Install REG_DWORD es igual a 1

Importante

Si la aplicación que está ejecutando es de 32 bits y se ejecuta en Windows de 64 bits, las rutas de acceso del Registro serán diferentes de las mostradas anteriormente. El registro de 32 bits está disponible en la subclave HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\. Por ejemplo, la subclave del Registro para .NET Framework 3.5 es HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

Tenga en cuenta que la ruta de acceso del registro a la subclave de .NET Framework 1.0 es diferente de la de los demás.

Uso del Editor del Registro (versiones anteriores de la plataforma)

  1. En el menú Inicio, seleccione Ejecutar, escriba regedit y haga clic en Aceptar.

    Debe tener credenciales de administrador para ejecutar regedit.

  2. Abra la subclave que coincida con la versión que desea comprobar. Use la tabla de la sección .NET Framework 1.0-4.0.

    En la siguiente ilustración se muestra la subclave y su valor de Version para .NET Framework 3.5.

    Entrada del Registro de .NET Framework 3.5.

Consultar el registro mediante código (versiones anteriores de la plataforma)

Use la clase Microsoft.Win32.RegistryKey para tener acceso a la subclave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP en el Registro de Windows.

Importante

Si la aplicación que está ejecutando es de 32 bits y se ejecuta en Windows de 64 bits, las rutas de acceso del Registro serán diferentes de las mostradas anteriormente. El registro de 32 bits está disponible en la subclave HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\. Por ejemplo, la subclave del Registro para .NET Framework 3.5 es HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

En el ejemplo siguiente se buscan las versiones de .NET Framework 1-4 que están instaladas:

// Open the registry key for the .NET Framework entry.
using (RegistryKey ndpKey =
        RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).
        OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
    foreach (var versionKeyName in ndpKey.GetSubKeyNames())
    {
        // Skip .NET Framework 4.5 version information.
        if (versionKeyName == "v4")
        {
            continue;
        }

        if (versionKeyName.StartsWith("v"))
        {
            RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);

            // Get the .NET Framework version value.
            var name = (string)versionKey.GetValue("Version", "");
            // Get the service pack (SP) number.
            var sp = versionKey.GetValue("SP", "").ToString();

            // Get the installation flag.
            var install = versionKey.GetValue("Install", "").ToString();
            if (string.IsNullOrEmpty(install))
            {
                // No install info; it must be in a child subkey.
                Console.WriteLine($"{versionKeyName}  {name}");
            }
            else if (install == "1")
            {
                // Install = 1 means the version is installed.

                if (!string.IsNullOrEmpty(sp))
                {
                    Console.WriteLine($"{versionKeyName}  {name}  SP{sp}");
                }
                else
                {
                    Console.WriteLine($"{versionKeyName}  {name}");
                }
            }

            if (!string.IsNullOrEmpty(name))
            {
                continue;
            }
            // else print out info from subkeys...

            // Iterate through the subkeys of the version subkey.
            foreach (var subKeyName in versionKey.GetSubKeyNames())
            {
                RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
                name = (string)subKey.GetValue("Version", "");
                if (!string.IsNullOrEmpty(name))
                    sp = subKey.GetValue("SP", "").ToString();

                install = subKey.GetValue("Install", "").ToString();
                if (string.IsNullOrEmpty(install))
                {
                    // No install info; it must be later.
                    Console.WriteLine($"  {versionKeyName}  {name}");
                }
                else if (install == "1")
                {
                    if (!string.IsNullOrEmpty(sp))
                    {
                        Console.WriteLine($"  {subKeyName}  {name}  SP{sp}");
                    }
                    else
                    {
                        Console.WriteLine($"  {subKeyName}  {name}");
                    }
                }
            }
        }
    }
}
' Opens the registry key for the .NET Framework entry.
Using ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).
    OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\")

    For Each versionKeyName In ndpKey.GetSubKeyNames()
        ' Skip .NET Framework 4.5 and later.
        If versionKeyName = "v4" Then Continue For

        If versionKeyName.StartsWith("v") Then
            Dim versionKey As RegistryKey = ndpKey.OpenSubKey(versionKeyName)
            ' Get the .NET Framework version value.
            Dim name = DirectCast(versionKey.GetValue("Version", ""), String)
            ' Get the service pack (SP) number.
            Dim sp = versionKey.GetValue("SP", "").ToString()

            Dim install = versionKey.GetValue("Install", "").ToString()
            If String.IsNullOrEmpty(install) Then
                ' No install info; it must be in a child subkey.
                Console.WriteLine($"{versionKeyName}  {name}")
            ElseIf install = "1" Then

                If Not String.IsNullOrEmpty(sp) Then
                    Console.WriteLine($"{versionKeyName}  {name}  SP{sp}")
                Else
                    Console.WriteLine($"{versionKeyName}  {name}")
                End If

            End If

            If Not String.IsNullOrEmpty(name) Then
                Continue For
            End If

            For Each subKeyName In versionKey.GetSubKeyNames()
                Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName)
                name = DirectCast(subKey.GetValue("Version", ""), String)
                If Not String.IsNullOrEmpty(name) Then
                    sp = subKey.GetValue("SP", "").ToString()
                End If

                install = subKey.GetValue("Install", "").ToString()
                If String.IsNullOrEmpty(install) Then
                    ' No install info; it must be later.
                    Console.WriteLine($"  {versionKeyName}  {name}")
                ElseIf install = "1" Then

                    If Not String.IsNullOrEmpty(sp) Then
                        Console.WriteLine($"  {subKeyName}  {name}  SP{sp}")
                    Else
                        Console.WriteLine($"  {subKeyName}  {name}")
                    End If

                End If
            Next
        End If
    Next
End Using

En el ejemplo se muestra una salida similar a la siguiente:

v2.0.50727  2.0.50727.4927  SP2
v3.0  3.0.30729.4926  SP2
v3.5  3.5.30729.4926  SP1
v4.0
  Client  4.0.0.0

Consulta del registro mediante PowerShell (versiones anteriores de la plataforma)

En el ejemplo siguiente se usa PowerShell para comprobar el valor de la entrada Release del Registro para buscar las versiones de .NET Framework 1-4 que están instaladas:

Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' |
Where-Object { ($_.PSChildName -ne "v4") -and ($_.PSChildName -like 'v*') } |
ForEach-Object {
    $name = $_.Version
    $sp = $_.SP
    $install = $_.Install
    if (-not $install) {
        Write-Host -Object "$($_.PSChildName)  $($name)"
    }
    elseif ($install -eq '1') {
        if (-not $sp) {
            Write-Host -Object "$($_.PSChildName)  $($name)"
        }
        else {
            Write-Host -Object "$($_.PSChildName)  $($name) SP$($sp)"
        }
}
    if (-not $name) {
        $parentName = $_.PSChildName
        Get-ChildItem -LiteralPath $_.PSPath |
        Where-Object {
            if ($_.Property -contains 'Version') { $name = $((Get-ItemProperty -Path "Registry::$_").Version) }
            if ($name -and ($_.Property -contains 'SP')) { $sp = $((Get-ItemProperty -Path "Registry::$_").SP) }
            if ($_.Property -contains 'Install') { $install = $((Get-ItemProperty -Path "Registry::$_").Install) }
            if (-not $install) {
                Write-Host -Object "  $($parentName)  $($name)"
            }
            elseif ($install -eq '1') {
                if (-not $sp) {
                    Write-Host -Object "  $($_.PSChildName)  $($name)"
                }
                else {
                    Write-Host -Object "  $($_.PSChildName)  $($name) SP$($sp)"
                }
            }
        }
    }
}

Búsqueda de versiones de CLR

El CLR de .NET Framework que se instala con .NET Framework tiene versiones independientes. Hay dos maneras de detectar la versión del CLR de .NET Framework:

La herramienta Clrver.exe

Use la herramienta de versión de CLR (Clrver.exe) para determinar qué versiones de CLR están instaladas en un equipo. Abra el Símbolo del sistema para desarrolladores de Visual Studio o PowerShell de Visual Studio para desarrolladores y escriba clrver.

Salida del ejemplo:

Versions installed on the machine:
v2.0.50727
v4.0.30319

La propiedad Environment.Version

Importante

Para .NET Framework 4.5 y versiones posteriores, no use la propiedad Environment.Version para detectar la versión de CLR. En su lugar, consulte el registro como se describe en .NET Framework 4.5 y versiones posteriores.

  1. Consulte la propiedad Environment.Version para recuperar un objeto Version.

    El objeto System.Version devuelto identifica la versión de tiempo de ejecución que está ejecutando el código. No devuelve versiones de ensamblado ni otras versiones del runtime que se hayan instalado en el equipo.

    Para las versiones 4, 4.5, 4.5.1 y 4.5.2 de .NET Framework, la representación de cadena del objeto Version devuelto tiene la forma 4.0.30319.xxxxx, donde xxxxx es inferior a 42000. Para .NET Framework 4.6 y versiones posteriores, tiene la forma 4.0.30319.42000.

  2. Una vez que tenga el objeto Version, consúltelo de la manera siguiente:

    • Para el identificador de versión principal (por ejemplo, 4 en la versión 4.0), use la propiedad Version.Major.
    • Para el identificador de versión secundaria (por ejemplo, 0 en la versión 4.0), use la propiedad Version.Minor.
    • Para la cadena de versión completa (por ejemplo, 4.0.30319.18010), use el método Version.ToString. Este método devuelve un valor único que refleja la versión del runtime que está ejecutando el código. No devuelve versiones de ensamblado ni otras versiones del runtime que se hayan instalado en el equipo.

En el ejemplo siguiente se usa la propiedad Environment.Version para recuperar la información de la versión de CLR:

Console.WriteLine($"Version: {Environment.Version}");
Console.WriteLine($"Version: {Environment.Version}")

En el ejemplo se muestra una salida similar a la siguiente:

Version: 4.0.30319.18010

Vea también