Aracılığıyla paylaş


Nasıl yapılır: Hangi .NET Framework sürümlerinin yüklü olduğunu belirleme

Uyarı

Bu makale .NET Framework'e özgüdür. Hangi .NET Core ve .NET 5+ SDK'ların ve çalışma zamanlarının yüklü olduğunu belirlemek için bkz. .NET'in zaten yüklü olup olmadığını denetleme.

Bir bilgisayara .NET Framework'ün birden çok sürümünü yükleyebilir ve çalıştırabilirsiniz.

  • Sürümleri kendi bilgisayarınızda denetlemek istiyorsanız, en kolay yol Denetim Masası>Programları Programlar>ve Özellikler'i veya Uygulamalar> altındaki Ayarlar'ı kullanmaktır. Topluluk tarafından korunan bu araçları da kullanabilirsiniz.
  • Uygulama geliştiricisiyseniz, uygulama kullanıcısının bilgisayarında hangi .NET Framework sürümlerinin yüklü olduğunu bilmeniz gerekebilir. Kayıt defteri, bilgisayarda yüklü .NET Framework sürümlerinin listesini içerir. Özelliğini de sorgulayabilirsinizRuntimeInformation.FrameworkDescription.
  • Ayrı olarak sürümlenen CLR sürümünü bulmak için bkz. CLR sürümlerini bulma.

.NET Framework, ayrı olarak sürümü oluşturulan iki ana bileşenden oluşur:

  • Uygulamalarınız için işlevsellik sağlayan tür ve kaynak koleksiyonları olan bir derleme kümesi. .NET Framework ve derlemeler aynı sürüm numarasını paylaşır. Örneğin, .NET Framework sürümleri 4.5, 4.6.1 ve 4.7.2'yi içerir.
  • Uygulamanızın kodunu yöneten ve yürüten ortak dil çalışma zamanı (CLR). Tek bir CLR sürümü genellikle birden çok .NET Framework sürümünü destekler. Örneğin, CLR sürüm 4.0.30319.xxxxx değeri 42000'den küçükse, .NET Framework 4 ile 4.5.2 arası sürümleri destekler. 4.0.30319.42000'den büyük veya buna eşit CLR sürümü, .NET Framework 4.6 ile başlayan .NET Framework sürümlerini destekler.

Tip

.NET Framework'ün her sürümü için yüklü güncelleştirmeleri algılama hakkında bilgi için bkz . Nasıl yapılır: Hangi .NET Framework güncelleştirmelerinin yüklendiğini belirleme.

Topluluk tarafından korunan araçlar

Hangi .NET Framework sürümlerinin yüklü olduğunu algılamaya yardımcı olmak için topluluk tarafından korunan araçlar sağlanır:

RuntimeInformation.FrameworkDescription özellik

Uygulamanızın hangi .NET sürümünde çalıştığını program aracılığıyla sorgulamak için özelliğini kullanabilirsiniz RuntimeInformation.FrameworkDescription . Uygulama .NET Framework üzerinde çalışıyorsa, çıkış şuna benzer olacaktır:

.NET Framework 4.8.4250.0

Karşılaştırmak gerekirse, uygulama .NET Core veya .NET 5+ üzerinde çalışıyorsa çıkış şuna benzer olacaktır:

.NET Core 3.1.9
.NET 5.0.0

Registry

Hangi .NET Framework sürümünün yüklü olduğunu algılamak için kayıt defterini kullanabilirsiniz. .NET Framework 1.0-4.0 ve .NET Framework 4.5+ için anahtarlar farklıdır. Kayıt defterini denetlemek için Kayıt Defteri Düzenleyicisi' ni, PowerShell'i veya kodu kullanabilirsiniz.

.NET Framework 4.5 ve sonraki sürümleri

Bir makineye yüklenen .NET Framework (4.5 ve üzeri) sürümü ,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Fullkonumundaki kayıt defterinde listelenir. Tam alt anahtar eksikse, .NET Framework 4.5 veya üzeri yüklü değildir.

Uyarı

Kayıt defteri yolundaki NET Framework Kurulum alt anahtarı bir nokta ile başlamaz.

Kayıt defterindeki Release REG_DWORD değeri yüklü .NET Framework sürümünü temsil eder.

.NET Framework sürümü Yayın Değeri
.NET Framework 4.5 Tüm Windows işletim sistemleri: 378389
.NET Framework 4.5.1 Windows 8.1 ve Windows Server 2012 R2'de: 378675
Diğer tüm Windows işletim sistemlerinde: 378758
.NET Framework 4.5.2 Tüm Windows işletim sistemleri: 379893
.NET Framework 4.6 Windows 10'da: 393295
Diğer tüm Windows işletim sistemlerinde: 393297
.NET Framework 4.6.1 Windows 10 Kasım Güncelleştirme sistemlerinde: 394254
Diğer tüm Windows işletim sistemlerinde (Windows 10 dahil): 394271
.NET Framework 4.6.2 Windows 10 Yıldönümü Güncelleştirmesi ve Windows Server 2016'da: 394802
Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 394806
.NET Framework 4.7 Windows 10 Creators Update'te: 460798
Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 460805
.NET Framework 4.7.1 Windows 10 Fall Creators Update ve Windows Server'da sürüm 1709: 461308
Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 461310
.NET Framework 4.7.2 Windows 10 Nisan 2018 Güncelleştirmesi ve Windows Server'da sürüm 1803: 461808
Windows 10 Nisan 2018 Update ve Windows Server dışındaki tüm Windows işletim sistemlerinde sürüm 1803: 461814
.NET Framework 4.8 Windows 10 Mayıs 2019 Güncelleştirmesi ve Windows 10 Kasım 2019 Güncelleştirmesinde: 528040
Windows 10 Mayıs 2020 Güncelleştirmesi, Ekim 2020 Güncelleştirmesi, Mayıs 2021 Güncelleştirmesi, Kasım 2021 Güncelleştirmesi ve 2022 Güncelleştirmesi: 528372
Windows 11 ve Windows Server 2022'de: 528449
Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 528049
.NET Framework 4.8.1 Windows 11 2025 Güncelleştirmesinde: 533509
Windows 11 2022 Güncelleştirmesi ve Windows 11 2023 Güncelleştirmesinde: 533320
Diğer tüm Windows işletim sistemleri: 533325

En düşük sürüm

.NET Framework'ün en düşük sürümünün mevcut olup olmadığını belirlemek için, aşağıdaki tabloda listelenen karşılık gelen değerden büyük veya buna eşit bir Release REG_DWORD değeri olup olmadığını denetleyin. Örneğin, uygulamanız .NET Framework 4.8 veya sonraki bir sürüm altında çalışıyorsa, 528040'tan büyük veya buna eşit bir Yayın REG_DWORD değeri için test edin.

.NET Framework sürümü Minimum değer
.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

Kayıt Defteri Düzenleyicisi'ni kullanma

  1. Başlat menüsünde Çalıştır'ı seçin, regedit yazın ve ardından Tamam'ı seçin.

    (Regedit'i çalıştırmak için yönetici kimlik bilgileriniz olmalıdır.)

  2. Kayıt Defteri Düzenleyicisi'nde aşağıdaki alt anahtarı açın: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Tam alt anahtar yoksa ,NET Framework 4.5 veya üzeri yüklü değildir.

  3. Release adlı bir REG_DWORD girdisi olup olmadığını denetleyin. Varsa, .NET Framework 4.5 veya üzeri yüklüdür. Değeri belirli bir .NET Framework sürümüne karşılık gelir. Aşağıdaki şekilde, örneğin , Release girdisinin değeri 528040'tır ve .NET Framework 4.8'in yayın anahtarıdır.

    .NET Framework 4.5 için kayıt defteri girişini gösteren RegEdit aracının ekran görüntüsü

En düşük sürümü denetlemek için PowerShell kullanma

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full alt anahtarının Release girişinin değerini denetlemek için PowerShell komutlarını kullanın.

Aşağıdaki örnekler, .NET Framework 4.6.2 veya sonraki bir sürümün yüklü olup olmadığını belirlemek için Yayın girdisinin değerini denetler. Bu kod, yüklüyse True; değilse False döndürür.

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

Kodu kullanarak kayıt defterini sorgulama

  1. Windows kayıt defterindeki RegistryKey.OpenBaseKeyRegistryKey.OpenSubKey alt anahtarına erişmek için ve yöntemlerini kullanın.

    Önemli

    Çalıştırdığınız uygulama 32 bitse ve 64 bit Windows'ta çalışıyorsa, kayıt defteri yolları daha önce listelenenden farklı olacaktır. 32 bit kayıt defteri ,HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alt anahtarında bulunur. Örneğin, .NET Framework 4.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

  2. Yüklü sürümü belirlemek için Yayın REG_DWORD değerini denetleyin. İleriye dönük uyumlu olmak için .NET Framework sürüm tablosunda listelenen değerden büyük veya buna eşit bir değer olup olmadığını denetleyin.

Aşağıdaki örnek, yüklü .NET Framework 4.5-4.8.1 sürümlerini bulmak için kayıt defterindeki Release girişinin değerini denetler.

Tip

Henüz yapmadıysanız yönergesini using Microsoft.Win32 veya Imports Microsoft.Win32 kod dosyanızın en üstüne ekleyin.

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

using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32))
using (RegistryKey ndpKey = baseKey.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 baseKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32),
          ndpKey As RegistryKey = baseKey.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
    Select Case releaseKey
        Case >= 533320 : Return "4.8.1 or later"
        Case >= 528040 : Return "4.8"
        Case >= 461808 : Return "4.7.2"
        Case >= 461308 : Return "4.7.1"
        Case >= 460798 : Return "4.7"
        Case >= 394802 : Return "4.6.2"
        Case >= 394254 : Return "4.6.1"
        Case >= 393295 : Return "4.6"
        Case >= 379893 : Return "4.5.2"
        Case >= 378675 : Return "4.5.1"
        Case >= 378389 : Return "4.5"
        Case Else
            Return "No 4.5 or later version detected"
    End Select
End Function

Örnekte çıktı aşağıdaki gibi görüntülenir:

.NET Framework Version: 4.6.1

PowerShell kullanarak kayıt defterini sorgulama

Aşağıdaki örnek, yüklü .NET Framework 4.5-4.8.1 sürümlerini bulmak üzere kayıt defterindeki Release girişinin değerini denetlemek için PowerShell'i kullanır:

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

Bu örnek, sürüm denetimi için önerilen uygulamayı izler:

  • Yayın girdisinin değerinin bilinen sürüm değerlerinin değerinden büyük veya buna eşit olup olmadığını denetler.
  • En son sürümden en eski sürüme doğru sırayla denetler.

.NET Framework 1.0-4.0

.NET Framework'ün 1.1 ile 4.0 sürümlerinden her biri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP'de alt anahtar olarak listelenir. Aşağıdaki tabloda her .NET Framework sürümünün yolu listelenmektedir. Çoğu sürümde, bu sürümün yüklü olduğunu belirtmek için bir Install REG_DWORD değeri 1 vardır. Bu alt anahtarlarda, sürüm dizesi içeren bir Sürüm REG_SZ değeri de vardır.

Uyarı

Kayıt defteri yolundaki NET Framework Kurulum alt anahtarı bir nokta ile başlamaz.

Çerçeve Sürümü Kayıt Defteri Alt Anahtarı Değer
1.0 HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 Yüklemek REG_SZ eşittir 1
1.1 HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 Yüklemek REG_DWORD eşittir 1
2.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Yüklemek REG_DWORD eşittir 1
3.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup InstallSuccess REG_DWORD eşittir 1
3.5 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 Yüklemek REG_DWORD eşittir 1
4.0 İstemci Profili HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client Yüklemek REG_DWORD eşittir 1
4.0 Tam Profil HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full Yüklemek REG_DWORD eşittir 1

Önemli

Çalıştırdığınız uygulama 32 bitse ve 64 bit Windows'ta çalışıyorsa, kayıt defteri yolları daha önce listelenenden farklı olacaktır. 32 bit kayıt defteri ,HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alt anahtarında bulunur. Örneğin, .NET Framework 3.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

.NET Framework 1.0 alt anahtarının kayıt defteri yolunun diğerlerinden farklı olduğuna dikkat edin.

Kayıt Defteri Düzenleyicisi'ni kullanma (eski çerçeve sürümleri)

  1. Başlat menüsünde Çalıştır'ı seçin, regedit yazın ve ardından Tamam'ı seçin.

    Regedit'i çalıştırmak için yönetici kimlik bilgileriniz olmalıdır.

  2. Denetlemek istediğiniz sürümle eşleşen alt anahtarı açın. .NET Framework 1.0-4.0 bölümündeki tabloyu kullanın.

    Aşağıdaki şekilde .NET Framework 3.5 için alt anahtarın ve Sürüm değerinin gösterildiği görülmektedir.

    .NET Framework 3.5 için kayıt defteri girişini gösteren RegEdit aracının ekran görüntüsü

Kodu kullanarak kayıt defterini sorgulama (eski çerçeve sürümleri)

Windows kayıt defterindeki Microsoft.Win32.RegistryKeyHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP alt anahtarına erişmek için sınıfını kullanın.

Önemli

Çalıştırdığınız uygulama 32 bitse ve 64 bit Windows'ta çalışıyorsa, kayıt defteri yolları daha önce listelenenden farklı olacaktır. 32 bit kayıt defteri ,HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alt anahtarında bulunur. Örneğin, .NET Framework 3.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

Aşağıdaki örnek yüklü .NET Framework 1-4 sürümlerini bulur:

// Open the registry key for the .NET Framework entry. Dispose this object when done.
RegistryKey ndpKey =
    RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
        .OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\");

foreach (string 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.
        string name = versionKey.GetValue("Version", "").ToString();

        // Get the service pack (SP) number.
        string sp = versionKey.GetValue("SP", "").ToString();

        // Get the installation flag.
        string 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))
        {
            versionKey.Dispose();
            continue;
        }

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

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

            // Clean up the subkey object.
            subKey.Dispose();
        }

        versionKey.Dispose();
    }
}

ndpKey.Dispose();
' Open the registry key for the .NET Framework entry. Dispose this object when done.
Dim 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 = versionKey.GetValue("Version", "").ToString()

        ' 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

            ' Install = 1 means the version is installed.
            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

            versionKey.Dispose()
            Continue For

        End If

        ' Iterate through the subkeys of the version subkey.
        For Each subKeyName In versionKey.GetSubKeyNames()

            Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName)
            name = subKey.GetValue("Version", "").ToString()

            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

            ' Clean up the subkey object.
            subKey.Dispose()

        Next

        versionKey.Dispose()

    End If
Next

ndpKey.Dispose()

Örnekte aşağıdakine benzer bir çıktı görüntülenir:

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

PowerShell kullanarak kayıt defterini sorgulama (eski çerçeve sürümleri)

Aşağıdaki örnek, yüklü .NET Framework 1-4 sürümlerini bulmak üzere kayıt defterindeki Release girişinin değerini denetlemek için PowerShell'i kullanır:

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

CLR sürümlerini bulma

.NET Framework ile yüklenen .NET Framework CLR, ayrı olarak sürümlenir. .NET Framework CLR sürümünü algılamanın iki yolu vardır:

Clrver.exe aracı

Bir bilgisayarda hangi CLR sürümlerinin yüklü olduğunu belirlemek için CLR Sürüm aracını (Clrver.exe) kullanın. Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i açın ve girinclrver.

Örnek çıkış:

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

Environment.Version özelliği

Önemli

.NET Framework 4.5 ve sonraki sürümler için, CLR sürümünü algılamak amacıyla Environment.Version özelliğini kullanmayın. Bunun yerine kayıt defterini .NET Framework 4.5 ve sonraki sürümlerde açıklandığı gibi sorgulayın.

  1. Environment.Version özelliğini sorgulayarak bir Version nesnesi alın.

    Döndürülen System.Version nesne, kodu yürütmekte olan çalışma zamanının sürümünü tanımlar. Bilgisayarda yüklü olabilecek derleme sürümlerini veya çalışma zamanının diğer sürümlerini döndürmez.

    .NET Framework sürüm 4, 4.5, 4.5.1 ve 4.5.2 için, döndürülen Version nesnenin dize gösterimi 4.0.30319 biçimindedir.xxxxx, burada xxxxx 42000'den küçüktür. .NET Framework 4.6 ve sonraki sürümleri için 4.0.30319.42000 biçimindedir.

  2. Version nesnesini aldıktan sonra aşağıdaki gibi sorgulayın:

    • Ana sürüm tanımlayıcısı için (örneğin, sürüm 4.0 için 4), özelliğini kullanın Version.Major .
    • Küçük sürüm tanımlayıcısı için (örneğin versiyon 4.0 için 0), Version.Minor özelliğini kullanın.
    • Sürüm dizesinin tamamı için (örneğin, 4.0.30319.18010), yöntemini kullanın Version.ToString . Bu yöntem, kodu yürüten çalışma zamanının sürümünü yansıtan tek bir değer döndürür. Bilgisayarda yüklü olabilecek derleme sürümlerini veya diğer çalışma zamanı sürümlerini döndürmez.

Aşağıdaki örnek, CLR sürüm bilgilerini almak için özelliğini kullanır Environment.Version :

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

Örnekte aşağıdakine benzer bir çıktı görüntülenir:

Version: 4.0.30319.18010

Ayrıca bakınız