Share via


Procedure: Bepalen welke .NET Framework-versies zijn geïnstalleerd

Notitie

Dit artikel is specifiek voor .NET Framework. Als u wilt bepalen welke .NET Core- en .NET 5+ SDK's en runtimes zijn geïnstalleerd, raadpleegt u Controleren of .NET al is geïnstalleerd.

U kunt meerdere versies van .NET Framework installeren en uitvoeren op een computer.

  • Als u de versies op uw eigen computer wilt controleren, is de eenvoudigste manier via Configuratiescherm Programma's>> en onderdelen, of in Instellingen onder Apps>geïnstalleerde apps. U kunt deze door de community onderhouden hulpprogramma's ook gebruiken.
  • Als u een app-ontwikkelaar bent, moet u mogelijk weten welke .NET Framework-versies op de computer van de app-gebruiker zijn geïnstalleerd. Het register bevat een lijst met de versies van .NET Framework die op de computer zijn geïnstalleerd. U kunt ook een query uitvoeren op de RuntimeInformation.FrameworkDescription eigenschap.
  • Zie CLR-versies zoeken om de CLR-versie te vinden, die afzonderlijk is versiebeheer.

.NET Framework bestaat uit twee hoofdonderdelen, die afzonderlijk worden geversied:

  • Een set assembly's, die verzamelingen typen en resources zijn die de functionaliteit voor uw apps bieden. .NET Framework en de assembly's delen hetzelfde versienummer. .NET Framework-versies zijn bijvoorbeeld 4.5, 4.6.1 en 4.7.2.
  • De Common Language Runtime (CLR), waarmee de code van uw app wordt beheerd en uitgevoerd. Een enkele CLR-versie ondersteunt doorgaans meerdere .NET Framework-versies. Bijvoorbeeld CLR versie 4.0.30319.xxxxx waarbij xxxxx kleiner is dan 42000, ondersteunt .NET Framework-versies 4 tot en met 4.5.2. CLR-versie groter dan of gelijk aan 4.0.30319.42000 ondersteunt .NET Framework-versies vanaf .NET Framework 4.6.

Tip

Zie How to: Bepalen welke .NET Framework-updates zijn geïnstalleerd voor informatie over het detecteren van de geïnstalleerde updates voor elke versie van .NET Framework.

Door de community onderhouden hulpprogramma's

Door de community onderhouden hulpprogramma's zijn beschikbaar om te detecteren welke .NET Framework-versies zijn geïnstalleerd:

RuntimeInformation.FrameworkDescription Eigenschap

Als u programmatisch een query wilt uitvoeren op de .NET-versie waarop uw app wordt uitgevoerd, kunt u de RuntimeInformation.FrameworkDescription eigenschap gebruiken. Als de app wordt uitgevoerd in .NET Framework, is de uitvoer vergelijkbaar met:

.NET Framework 4.8.4250.0

Ter vergelijking: als de app wordt uitgevoerd op .NET Core of .NET 5+, is de uitvoer vergelijkbaar met:

.NET Core 3.1.9
.NET 5.0.0

Register

U kunt het register gebruiken om te detecteren welke .NET Framework-versie is geïnstalleerd. De sleutels verschillen voor .NET Framework 1.0-4.0 en .NET Framework 4.5+. U kunt registereditor, PowerShell of code gebruiken om het register te controleren.

.NET Framework 4.5 en latere versies

De versie van .NET Framework (4.5 en hoger) die op een computer is geïnstalleerd, wordt vermeld in het register op HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Als de volledige subsleutel ontbreekt, is .NET Framework 4.5 of hoger niet geïnstalleerd.

Notitie

De subsleutel NET Framework Setup in het registerpad begint niet met een punt.

De release-REG_DWORD-waarde in het register vertegenwoordigt de versie van .NET Framework die is geïnstalleerd.

Versie van .NET Framework Waarde van release
.NET Framework 4.5 Alle Windows-besturingssystemen: 378389
.NET Framework 4.5.1 Op Windows 8.1 en Windows Server 2012 R2: 378675
Op alle andere Windows-besturingssystemen: 378758
.NET Framework 4.5.2 Alle Windows-besturingssystemen: 379893
.NET framework 4.6 In Windows 10: 393295
Op alle andere Windows-besturingssystemen: 393297
.NET Framework 4.6.1 Op Windows 10 November Update-systemen: 394254
Op alle andere Windows-besturingssystemen (inclusief Windows 10): 394271
.NET Framework 4.6.2 Op Windows 10 Jubileumupdate en Windows Server 2016: 394802
Op alle andere Windows-besturingssystemen (inclusief andere Windows 10-besturingssystemen): 394806
.NET Framework 4.7 Op Windows 10-makersupdate: 460798
Op alle andere Windows-besturingssystemen (inclusief andere Windows 10-besturingssystemen): 460805
.NET Framework 4.7.1 Op Windows 10 Fall Creators Update en Windows Server, versie 1709: 461308
Op alle andere Windows-besturingssystemen (inclusief andere Windows 10-besturingssystemen): 461310
.NET Framework 4.7.2 Op Windows 10 april 2018 Update en Windows Server versie 1803: 461808
Op alle Andere Windows-besturingssystemen dan Windows 10 april 2018 Update en Windows Server, versie 1803: 461814
.NET Framework 4.8 Update voor Windows 10 mei 2019 en Windows 10 November 2019 Update: 528040
Update voor Windows 10 mei 2020, update van oktober 2020, update van mei 2021, update van november 2021 en update van 2022: 528372
Op Windows 11 en Windows Server 2022: 528449
Op alle andere Windows-besturingssystemen (inclusief andere Windows 10-besturingssystemen): 528049
.NET Framework 4.8.1 Op Windows 11 2022 Update en Windows 11 2023 Update: 533320
Alle andere Windows-besturingssystemen: 533325

Minimumversie

Als u wilt bepalen of een minimale versie van .NET Framework aanwezig is, controleert u op een release-REG_DWORD waarde die groter is dan of gelijk is aan de overeenkomstige waarde die wordt vermeld in de volgende tabel. Als uw toepassing bijvoorbeeld wordt uitgevoerd onder .NET Framework 4.8 of een latere versie, test u op een release-REG_DWORD waarde die groter is dan of gelijk is aan 528040.

Versie van .NET Framework Minimumwaarde
.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

Register-editor gebruiken

  1. Kies Uitvoeren in het menu Start, voer regedit in en selecteer VERVOLGENS OK.

    (U moet beheerdersreferenties hebben om regedit uit te voeren.)

  2. Open in de Register-editor de volgende subsleutel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Als de volledige subsleutel niet aanwezig is, hebt u .NET Framework 4.5 of hoger niet geïnstalleerd.

  3. Controleer op een REG_DWORD vermelding met de naam Release. Als deze bestaat, hebt u .NET Framework 4.5 of hoger geïnstalleerd. De waarde komt overeen met een bepaalde versie van .NET Framework. In de volgende afbeelding is bijvoorbeeld de waarde van de releasevermelding 528040, de releasesleutel voor .NET Framework 4.8.

    Registervermelding voor .NET Framework 4.5

PowerShell gebruiken om te controleren op een minimale versie

Gebruik PowerShell-opdrachten om de waarde van de releasevermelding van de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Volledige subsleutel te controleren.

In de volgende voorbeelden wordt de waarde van de releasevermelding gecontroleerd om te bepalen of .NET Framework 4.6.2 of hoger is geïnstalleerd. Deze code retourneert True als deze is geïnstalleerd en False anders.

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

Query's uitvoeren op het register met behulp van code

  1. Gebruik de RegistryKey.OpenBaseKey en RegistryKey.OpenSubKey methoden voor toegang tot de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full subkey in het Windows-register.

    Belangrijk

    Als de app die u uitvoert 32-bits is en wordt uitgevoerd in 64-bits Windows, zijn de registerpaden anders dan eerder vermeld. Het 64-bits register is beschikbaar in de subsleutel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . De registersubsleutel voor .NET Framework 4.5 is bijvoorbeeld HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

  2. Controleer de waarde van release REG_DWORD om de geïnstalleerde versie te bepalen. Als u compatibel wilt zijn met doorsturen, controleert u op een waarde die groter is dan of gelijk is aan de waarde die wordt vermeld in de .NET Framework-versietabel.

In het volgende voorbeeld wordt de waarde van de releasevermelding in het register gecontroleerd om de versies van .NET Framework 4.5-4.8.1 te vinden die zijn geïnstalleerd.

Tip

Voeg de instructie using Microsoft.Win32 of Imports Microsoft.Win32 boven aan het codebestand toe als u dit nog niet hebt gedaan.

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

In het voorbeeld ziet u uitvoer zoals hieronder:

.NET Framework Version: 4.6.1

Query's uitvoeren op het register met behulp van PowerShell

In het volgende voorbeeld wordt PowerShell gebruikt om de waarde van de releasevermelding in het register te controleren om de versies van .NET Framework 4.5-4.8.1 te vinden die zijn geïnstalleerd:

$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.'
}

Dit voorbeeld volgt de aanbevolen procedure voor versiecontrole:

  • Er wordt gecontroleerd of de waarde van de releasevermelding groter is dan of gelijk is aan de waarde van de bekende releasesleutels.
  • Het controleert in volgorde van de meest recente versie naar de vroegste versie.

.NET Framework 1.0-4.0

Elke versie van .NET Framework van 1.1 tot en met 4.0 wordt vermeld als een subsleutel op HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP. De volgende tabel bevat het pad naar elke .NET Framework-versie. Voor de meeste versies is er een installatie-REG_DWORD waarde om 1 aan te geven dat deze versie is geïnstalleerd. In deze subsleutels is er ook een versie REG_SZ waarde die een versietekenreeks bevat.

Notitie

De subsleutel NET Framework Setup in het registerpad begint niet met een punt.

Framework-versie Registersubsleutel Weergegeven als
1.0 HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 Installeer REG_SZ is gelijk aan 1
1.1 HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 REG_DWORD installeren is gelijk aan 1
2.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 REG_DWORD installeren is gelijk aan 1
3,0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup InstallSuccess REG_DWORD is gelijk aan 1
3.5 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 REG_DWORD installeren is gelijk aan 1
4.0 Clientprofiel HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client REG_DWORD installeren is gelijk aan 1
4.0 Volledig profiel HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full REG_DWORD installeren is gelijk aan 1

Belangrijk

Als de app die u uitvoert 32-bits is en wordt uitgevoerd in 64-bits Windows, zijn de registerpaden anders dan eerder vermeld. Het 64-bits register is beschikbaar in de subsleutel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . De registersubsleutel voor .NET Framework 3.5 is bijvoorbeeld HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

U ziet dat het registerpad naar de subsleutel .NET Framework 1.0 verschilt van de andere.

Register-editor gebruiken (oudere frameworkversies)

  1. Kies Uitvoeren in het menu Start, voer regedit in en selecteer VERVOLGENS OK.

    U moet beheerdersreferenties hebben om regedit uit te voeren.

  2. Open de subsleutel die overeenkomt met de versie die u wilt controleren. Gebruik de tabel in de sectie .NET Framework 1.0-4.0 .

    In de volgende afbeelding ziet u de subsleutel en de bijbehorende versiewaarde voor .NET Framework 3.5.

    De registervermelding voor .NET Framework 3.5.

Query's uitvoeren op het register met behulp van code (oudere frameworkversies)

Gebruik de Microsoft.Win32.RegistryKey klasse voor toegang tot de subsleutel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP in het Windows-register.

Belangrijk

Als de app die u uitvoert 32-bits is en wordt uitgevoerd in 64-bits Windows, zijn de registerpaden anders dan eerder vermeld. Het 64-bits register is beschikbaar in de subsleutel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . De registersubsleutel voor .NET Framework 3.5 is bijvoorbeeld HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

In het volgende voorbeeld worden de versies van .NET Framework 1-4 gevonden die zijn geïnstalleerd:

// 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

In het voorbeeld wordt uitvoer weergegeven die vergelijkbaar is met de volgende:

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

Een query uitvoeren op het register met behulp van PowerShell (oudere frameworkversies)

In het volgende voorbeeld wordt PowerShell gebruikt om de waarde van de releasevermelding in het register te controleren om de versies van .NET Framework 1-4 te vinden die zijn geïnstalleerd:

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)"
                }
            }
        }
    }
}

CLR-versies zoeken

De .NET Framework CLR die met .NET Framework is geïnstalleerd, wordt afzonderlijk geversied. Er zijn twee manieren om de versie van .NET Framework CLR te detecteren:

Het hulpprogramma Clrver.exe

Gebruik het hulpprogramma CLR Version (Clrver.exe) om te bepalen welke versies van de CLR op een computer zijn geïnstalleerd. Open de Opdrachtprompt voor Visual Studio Developer of Visual Studio Developer PowerShell en voer dit in clrver.

Voorbeelduitvoer:

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

De Environment.Version eigenschap

Belangrijk

Gebruik voor .NET Framework 4.5 en latere versies niet de Environment.Version eigenschap om de versie van de CLR te detecteren. Voer in plaats daarvan een query uit op het register, zoals beschreven in .NET Framework 4.5 en latere versies.

  1. Voer een query uit op de Environment.Version eigenschap om een Version object op te halen.

    Het geretourneerde System.Version object identificeert de versie van de runtime die momenteel de code uitvoert. Er worden geen assemblyversies of andere versies van de runtime geretourneerd die mogelijk op de computer zijn geïnstalleerd.

    Voor .NET Framework-versies 4, 4.5, 4.5.1 en 4.5.2 heeft de tekenreeksweergave van het geretourneerde Version object de vorm 4.0.30319.xxxxx, waarbij xxxxx kleiner is dan 42000. Voor .NET Framework 4.6 en latere versies heeft het de vorm 4.0.30319.42000.

  2. Nadat u het versieobject hebt, voert u een query uit als volgt:

    • Gebruik Version.Major de eigenschap voor de primaire release-id (bijvoorbeeld 4 voor versie 4.0).
    • Gebruik Version.Minor de eigenschap voor de secundaire release-id (bijvoorbeeld 0 voor versie 4.0).
    • Gebruik Version.ToString de methode voor de volledige versietekenreeks (bijvoorbeeld 4.0.30319.18010). Deze methode retourneert één waarde die overeenkomt met de versie van de runtime die de code uitvoert. Er worden geen assemblyversies of andere runtimeversies geretourneerd die mogelijk op de computer zijn geïnstalleerd.

In het volgende voorbeeld wordt de Environment.Version eigenschap gebruikt om CLR-versiegegevens op te halen:

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

In het voorbeeld wordt uitvoer weergegeven die vergelijkbaar is met de volgende:

Version: 4.0.30319.18010

Zie ook