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
En el menú Inicio, seleccione Ejecutar, escriba regedit y haga clic en Aceptar.
(Debe tener credenciales de administrador para ejecutar regedit).
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.
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.
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
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.
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 las claves de versión conocidas.
- 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)
En el menú Inicio, seleccione Ejecutar, escriba regedit y haga clic en Aceptar.
Debe tener credenciales de administrador para ejecutar regedit.
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.
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-ItemPropertyValue -Path $_.PSPath -Name Version }
if ($name -and ($_.Property -contains 'SP')) { $sp = Get-ItemPropertyValue -Path $_.PSPath -Name SP }
if ($_.Property -contains 'Install') { $install = Get-ItemPropertyValue -Path $_.PSPath -Name 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.
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.
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