Útmutató: Annak meghatározása, hogy mely .NET-keretrendszer verziók vannak telepítve

Feljegyzés

Ez a cikk a .NET-keretrendszer vonatkozik. Annak megállapításához, hogy mely .NET Core és .NET 5+ SDK-k és futtatókörnyezetek vannak telepítve, olvassa el a .NET telepítésének ellenőrzéséhez.

A .NET-keretrendszer több verzióját is telepítheti és futtathatja a számítógépen.

  • Ha a saját számítógépén szeretné ellenőrizni a verziókat, a legegyszerűbb módszer a Vezérlőpult> Program programok>és szolgáltatások, vagy a telepített alkalmazások> alkalmazásainak Gépház. Ezeket a közösségi fenntartású eszközöket is használhatja.
  • Ha Ön alkalmazásfejlesztő, előfordulhat, hogy tudnia kell, hogy mely .NET-keretrendszer verziók vannak telepítve az alkalmazásfelhasználó számítógépén. A beállításjegyzék tartalmazza a számítógépre telepített .NET-keretrendszer verzióinak listáját. A tulajdonságot RuntimeInformation.FrameworkDescriptionis lekérdezheti.
  • A külön verziójú CLR-verzió megkereséséhez lásd : CLR-verziók keresése.

.NET-keretrendszer két fő összetevőből áll, amelyek külön verziószámozottak:

  • Szerelvények készlete, amelyek olyan típusok és erőforrások gyűjteményei, amelyek biztosítják az alkalmazások funkcióit. .NET-keretrendszer és a szerelvények azonos verziószámmal rendelkeznek. .NET-keretrendszer verzió például a 4.5, a 4.6.1 és a 4.7.2.
  • A közös nyelvi futtatókörnyezet (CLR), amely kezeli és végrehajtja az alkalmazás kódját. Egy CLR-verzió általában több .NET-keretrendszer verziót támogat. Például a CLR 4.0.30319-es verziója.xxxxx ahol az xxxxx kisebb, mint 42000, támogatja .NET-keretrendszer 4–4.5.2-s verziót. A 4.0.30319.42000-esnél nagyobb vagy azzal egyenlő CLR-verzió támogatja .NET-keretrendszer verziót a .NET-keretrendszer 4.6-os verziótól kezdve.

Tipp.

Az egyes .NET-keretrendszer-verziók telepített frissítéseinek észleléséről további információt a következő témakörben talál: Útmutató: A telepített .NET-keretrendszer frissítések meghatározása.

Közösség által karbantartott eszközök

A közösség által fenntartott eszközök segítenek megállapítani, hogy mely .NET-keretrendszer verziók vannak telepítve:

RuntimeInformation.FrameworkDescription Tulajdonság

Ha programozott módon szeretné lekérdezni, hogy az alkalmazás melyik .NET-verzión fut, használhatja a tulajdonságot RuntimeInformation.FrameworkDescription . Ha az alkalmazás .NET-keretrendszer fut, a kimenet a következőhöz hasonló lesz:

.NET Framework 4.8.4250.0

Összehasonlításképpen, ha az alkalmazás .NET Core-on vagy .NET 5+-on fut, a kimenet a következőhöz hasonló lesz:

.NET Core 3.1.9
.NET 5.0.0

Beállításjegyzék

A beállításjegyzék használatával észlelheti, hogy melyik .NET-keretrendszer verzió van telepítve. A kulcsok különböznek az 1.0-4.0 .NET-keretrendszer és a 4.5+.NET-keretrendszer. A beállításjegyzék ellenőrzéséhez használhatja a Beállításszerkesztőt, a PowerShellt vagy a kódot.

.NET-keretrendszer 4.5-ös és újabb verziók

A számítógépen telepített .NET-keretrendszer (4.5-ös vagy újabb) verziója a beállításjegyzékben szerepel a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full címen. Ha a Teljes alkulcs hiányzik, akkor a .NET-keretrendszer 4.5-ös vagy újabb verzió nincs telepítve.

Feljegyzés

A beállításjegyzék elérési útjának NET-keretrendszer telepítő alkulcsa nem ponttal kezdődik.

A beállításjegyzék kiadási REG_DWORD értéke a telepített .NET-keretrendszer verzióját jelöli.

.NET-keretrendszer verziója A kiadás értéke
.NET-keretrendszer 4.5 Minden Windows operációs rendszer: 378389
.NET-keretrendszer 4.5.1 Windows 8.1 és Windows Server 2012 R2 rendszeren: 378675
Minden más Windows operációs rendszeren: 378758
.NET-keretrendszer 4.5.2 Minden Windows operációs rendszer: 379893
.NET-keretrendszer 4.6 Windows 10-en: 393295
Minden más Windows operációs rendszeren: 393297
.NET-keretrendszer 4.6.1-es verziója Windows 10 novemberi frissítési rendszereken: 394254
Minden más Windows operációs rendszeren (beleértve a Windows 10-et is): 394271
.NET-keretrendszer 4.6.2 Windows 10 évfordulós frissítés és Windows Server 2016: 394802
Minden más Windows operációs rendszeren (beleértve a Többi Windows 10 operációs rendszert is): 394806
.NET-keretrendszer 4.7 Windows 10 alkotói frissítés: 460798
Minden más Windows operációs rendszeren (beleértve a Többi Windows 10 operációs rendszert is): 460805
.NET-keretrendszer 4.7.1 Windows 10 Fall Creators Update és Windows Server 1709-es verzió: 461308
Minden más Windows operációs rendszeren (beleértve a Többi Windows 10 operációs rendszert is): 461310
.NET-keretrendszer 4.7.2 Windows 10 2018. április 10-i frissítés és Windows Server 1803-es verzió: 461808
A Windows 10 2018. április 10-i frissítéstől és Windows Servertől eltérő windowsos operációs rendszereken az 1803-es verzió: 461814
.NET-keretrendszer 4.8 Windows 10 2019. májusi frissítése és Windows 10 2019. novemberi frissítés: 528040
Windows 10 2020. májusi frissítés, 2020. októberi frissítés, 2021. májusi frissítés, 2021. novemberi frissítés és 2022- frissítés: 528372
Windows 11 és Windows Server 2022 rendszeren: 528449
Minden más Windows operációs rendszeren (beleértve a többi Windows 10 operációs rendszert is): 528049
.NET-keretrendszer 4.8.1 Windows 11 2022 Update és Windows 11 2023 Update: 533320
Minden más Windows operációs rendszer: 533325

Minimális verzió

Annak megállapításához, hogy a .NET-keretrendszer minimális verziója létezik-e, keressen egy kiadási REG_DWORD értéket, amely nagyobb vagy egyenlő az alábbi táblázatban felsorolt megfelelő értékkel. Ha például az alkalmazás a .NET-keretrendszer 4.8-at vagy újabb verziót használja, tesztelje az 528040-es vagy annál nagyobb kiadási REG_DWORD értéket.

.NET-keretrendszer verziója Minimális érték
.NET-keretrendszer 4.5 378389
.NET-keretrendszer 4.5.1 378675
.NET-keretrendszer 4.5.2 379893
.NET-keretrendszer 4.6 393295
.NET-keretrendszer 4.6.1-es verziója 394254
.NET-keretrendszer 4.6.2 394802
.NET-keretrendszer 4.7 460798
.NET-keretrendszer 4.7.1 461308
.NET-keretrendszer 4.7.2 461808
.NET-keretrendszer 4.8 528040
.NET-keretrendszer 4.8.1 533320

Beállításszerkesztő használata

  1. A Start menüben válassza a Futtatás lehetőséget, írja be a regedit parancsot, majd kattintson az OK gombra.

    (A regedit futtatásához rendszergazdai hitelesítő adatokkal kell rendelkeznie.)

  2. A Beállításszerkesztőben nyissa meg a következő alkulcsot: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Ha a Teljes alkulcs nincs telepítve, akkor nincs telepítve a .NET-keretrendszer 4.5-ös vagy újabb verziója.

  3. Keressen egy Kiadás nevű REG_DWORD bejegyzést. Ha létezik, akkor a .NET-keretrendszer 4.5-ös vagy újabb verziója van telepítve. Értéke a .NET-keretrendszer egy adott verziójának felel meg. Az alábbi ábrán például a kiadási bejegyzés értéke 528040, amely a 4.8-.NET-keretrendszer kiadási kulcsa.

    Beállításjegyzék-bejegyzés a .NET-keretrendszer 4.5-ös verzióhoz

A PowerShell használata a minimális verzió ellenőrzéséhez

A PowerShell-parancsokkal ellenőrizze a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Teljes alkulcs kiadási bejegyzésének értékét.

Az alábbi példák a kiadási bejegyzés értékét ellenőrzik annak megállapításához, hogy .NET-keretrendszer 4.6.2-es vagy újabb verzió van-e telepítve. Ez a kód akkor ad True vissza, ha telepítve van, és False egyébként is.

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

A beállításjegyzék lekérdezése kóddal

  1. Használja a RegistryKey.OpenBaseKeyRegistryKey.OpenSubKey HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full alkulcsot a Windows beállításjegyzékben.

    Fontos

    Ha a futó alkalmazás 32 bites, és 64 bites Windows rendszerben fut, a beállításjegyzék elérési útjai eltérnek a korábban felsoroltaktól. A 64 bites beállításjegyzék a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alkulcsban érhető el. A 4.5-ös .NET-keretrendszer beállításkulcsa például HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

  2. A telepített verzió meghatározásához ellenőrizze a Kiadás REG_DWORD értékét. Ha tovább kompatibilis szeretne lenni, ellenőrizze, hogy a .NET-keretrendszer verziótáblában szereplő értéknél nagyobb vagy egyenlő érték van-e.

Az alábbi példa a beállításjegyzék kiadási bejegyzésének értékét ellenőrzi a telepített .NET-keretrendszer 4.5-4.8.1-es verzióinak megkereséséhez.

Tipp.

Ha még nem tette meg, adja hozzá az irányelvet using Microsoft.Win32 vagy Imports Microsoft.Win32 a kódfájl tetején.

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

A példa a következőhöz hasonló kimenetet jelenít meg:

.NET Framework Version: 4.6.1

A beállításjegyzék lekérdezése a PowerShell használatával

Az alábbi példa a PowerShell használatával ellenőrzi a beállításjegyzék kiadási bejegyzésének értékét a telepített .NET-keretrendszer 4.5-4.8.1-es verzióinak megkereséséhez:

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

Ez a példa a verzióellenőrzés ajánlott gyakorlatát követi:

  • Ellenőrzi, hogy a kiadási bejegyzés értéke nagyobb vagy egyenlő-e az ismert kiadási kulcsok értékével.
  • A legújabb verziótól a legkorábbi verzióig ellenőrzi a sorrendet.

.NET-keretrendszer 1.0-4.0

Az .NET-keretrendszer 1.1-től 4.0-s verzióig minden verziója alkulcsként szerepel a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP webhelyen. Az alábbi táblázat az egyes .NET-keretrendszer verziók elérési útját sorolja fel. A legtöbb verzió esetében a Telepítés REG_DWORD értéke 1 jelzi, hogy a verzió telepítve van. Ezekben az alkulcsokban van egy Verzió REG_SZ érték is, amely verziósztringet tartalmaz.

Feljegyzés

A beállításjegyzék elérési útjának NET-keretrendszer telepítő alkulcsa nem ponttal kezdődik.

Keretrendszer verziója Beállításjegyzék-alkulcs Érték
1,0 HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 A REG_SZ telepítése egyenlő 1
1,1 HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 Egyenlő REG_DWORD telepítése1
2,0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Egyenlő REG_DWORD telepítése1
3,0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup InstallSuccess REG_DWORD egyenlő 1
3,5 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 Egyenlő REG_DWORD telepítése1
4.0 Ügyfélprofil HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client Egyenlő REG_DWORD telepítése1
4.0 Teljes profil HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full Egyenlő REG_DWORD telepítése1

Fontos

Ha a futó alkalmazás 32 bites, és 64 bites Windows rendszerben fut, a beállításjegyzék elérési útjai eltérnek a korábban felsoroltaktól. A 64 bites beállításjegyzék a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alkulcsban érhető el. A 3.5-ös .NET-keretrendszer beállításkulcsa például HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

Figyelje meg, hogy az .NET-keretrendszer 1.0 alkulcs beállításjegyzékbeli elérési útja eltér a többitől.

Beállításszerkesztő használata (régebbi keretrendszerverziók)

  1. A Start menüben válassza a Futtatás lehetőséget, írja be a regedit parancsot, majd kattintson az OK gombra.

    A regedit futtatásához rendszergazdai hitelesítő adatokkal kell rendelkeznie.

  2. Nyissa meg az ellenőrizni kívánt verziónak megfelelő alkulcsot. Használja a táblázatot az .NET-keretrendszer 1.0-4.0 szakaszban.

    Az alábbi ábra a 3.5-ös .NET-keretrendszer alkulcsát és verzióértékét mutatja.

    A 3.5-ös .NET-keretrendszer beállításjegyzék-bejegyzése.

A beállításjegyzék lekérdezése kóddal (régebbi keretrendszerverziók)

Microsoft.Win32.RegistryKey Az osztály használatával lépjen a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP alkulcshoz a Windows beállításjegyzékében.

Fontos

Ha a futó alkalmazás 32 bites, és 64 bites Windows rendszerben fut, a beállításjegyzék elérési útjai eltérnek a korábban felsoroltaktól. A 64 bites beállításjegyzék a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alkulcsban érhető el. A 3.5-ös .NET-keretrendszer beállításkulcsa például HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

Az alábbi példa az .NET-keretrendszer 1-4 telepített verzióit találja:

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

A példa a következőhöz hasonló kimenetet jelenít meg:

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

A beállításjegyzék lekérdezése a PowerShell használatával (régebbi keretrendszerverziók)

Az alábbi példa a PowerShell használatával ellenőrzi a beállításjegyzék kiadási bejegyzésének értékét a telepített .NET-keretrendszer 1-4-es verziójának megkereséséhez:

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-verziók keresése

A .NET-keretrendszer telepített .NET-keretrendszer CLR külön verziójú. A .NET-keretrendszer CLR kétféleképpen észlelhető:

Az Clrver.exe eszköz

A CLR Verzió eszközével (Clrver.exe) meghatározhatja, hogy a CLR mely verziói vannak telepítve a számítógépen. Nyissa meg a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt , és írja be clrver.

Példa a kimenetre:

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

A Environment.Version tulajdonság

Fontos

A .NET-keretrendszer 4.5-ös és újabb verziói esetén ne használja a Environment.Version tulajdonságot a CLR verziójának észlelésére. Ehelyett kérdezze le a beállításjegyzéket a .NET-keretrendszer 4.5-ös és újabb verzióiban leírtak szerint.

  1. A tulajdonság lekérdezése Environment.Version objektum Version lekéréséhez.

    A visszaadott System.Version objektum azonosítja annak a futtatókörnyezetnek a verzióját, amely jelenleg futtatja a kódot. Nem adja vissza a számítógépre telepített szerelvényverziókat vagy a futtatókörnyezet más verzióit.

    A .NET-keretrendszer 4.5-ös, 4.5.1-s és 4.5.2-s verziói esetében a visszaadott Version objektum sztringképe 4.0.30319 formátumú.xxxxx, ahol az xxxxx kisebb, mint 42000. A .NET-keretrendszer 4.6-os és újabb verziói esetében a 4.0.30319.42000-ás formátumú.

  2. Miután létrehozta a Verzió objektumot, a következőképpen kérdezheti le:

    • A fő kiadási azonosítóhoz (például a 4.0-s verzióhoz) használja a tulajdonságot Version.Major .
    • Az alverzió kiadási azonosítójának (például 0 a 4.0-s verzióhoz) használja a tulajdonságot Version.Minor .
    • A teljes verziós sztringhez (például 4.0.30319.18010) használja a metódust Version.ToString . Ez a metódus egyetlen értéket ad vissza, amely a kódot végrehajtó futtatókörnyezet verzióját tükrözi. Nem ad vissza szerelvényverziókat vagy a számítógépre esetleg telepített egyéb futtatókörnyezeti verziókat.

Az alábbi példa a tulajdonság használatával kéri le a Environment.Version CLR verzióadatait:

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

A példa a következőhöz hasonló kimenetet jelenít meg:

Version: 4.0.30319.18010

Lásd még