Nasıl yapılır: Hangi .NET Framework sürümlerinin yüklü olduğunu belirlemeHow to: Determine which .NET Framework versions are installed

Kullanıcılar yükleme ve .NET Framework'ün birden çok sürümü bilgisayarlarında çalıştırır.Users can install and run multiple versions of the .NET Framework on their computers. Geliştirme veya uygulamanızı dağıtma, hangi .NET Framework sürümlerinin kullanıcının bilgisayarında yüklü olduğunu bilmeniz gerekebilir.When you develop or deploy your app, you might need to know which .NET Framework versions are installed on the user’s computer.

.NET Framework, ayrı ayrı uyarlandı iki ana bileşenden, oluşur:The .NET Framework consists of two main components, which are versioned separately:

  • Koleksiyonları türlerin ve uygulamalarınız için işlevsellik sağlayan kaynaklar derlemelere kümesi.A set of assemblies, which are collections of types and resources that provide the functionality for your apps. .NET Framework ve derlemeleri, aynı sürüm numarasını paylaşır.The .NET Framework and assemblies share the same version number.

  • Yönetir ve uygulamanızın kod yürüten ortak dil çalışma zamanı (CLR).The common language runtime (CLR), which manages and executes your app's code. CLR kendi sürüm numarasıyla tanımlanır (bkz sürümler ve bağımlılıklar).The CLR is identified by its own version number (see Versions and Dependencies).

Not

.NET Framework'ün her yeni sürümü önceki sürümlerdeki özellikleri korur ve yeni özellikler ekler.Each new version of the .NET Framework retains features from the previous versions and adds new features. Önceki sürümleri kaldırmadan .NET Framework yükleme, yani aynı anda tek bir bilgisayara .NET Framework'ün birden çok sürümü yükleyebilirsiniz.You can load multiple versions of the .NET Framework on a single computer at the same time, which means that you can install the .NET Framework without having to uninstall previous versions. Genel olarak, bir uygulama belirli bir sürüme bağlı olabileceği veya o sürüm kaldırılırsa bozulabileceği için .NET Framework'ün önceki sürümlerini kaldırın olmamalıdır.In general, you shouldn't uninstall previous versions of the .NET Framework, because an application you use may depend on a specific version and may break if that version is removed.

.NET Framework sürümü ve CLR sürümü arasında bir fark vardır:There is a difference between the .NET Framework version and the CLR version:

  • .NET Framework sürümü .NET Framework sınıf kitaplığı oluşturan derlemeleri kümesini temel alır.The .NET Framework version is based on the set of assemblies that form the .NET Framework class library. Örneğin, .NET Framework sürüm 4.5, 4.6.1 ve 4.7.2 içerir.For example, .NET Framework versions include 4.5, 4.6.1, and 4.7.2.
  • CLR sürümü, .NET Framework uygulamaları, üzerinde yürütme çalışma zamanı temel alır.The CLR version is based on the runtime on which .NET Framework applications execute. Tek bir CLR sürümü, genellikle birden çok .NET Framework sürümlerini destekler.A single CLR version typically supports multiple .NET Framework versions. Örneğin, CLR sürüm 4.0.30319. xxxxx .NET Framework sürüm 4.5.2, 4 destekler burada xxxxx küçüktür 42000 olduğunu ve CLR sürümü 4.0.30319.42000 .NET Framework 4. 6'ile başlayan .NET Framework sürümlerini destekler.For example, CLR version 4.0.30319.xxxxx supports .NET Framework versions 4 through 4.5.2, where xxxxx is less than 42000, and CLR version 4.0.30319.42000 supports .NET Framework versions starting with .NET Framework 4.6.

Sürümleri hakkında daha fazla bilgi için bkz. .NET Framework sürümleri ve bağımlılıkları.For more information about versions, see .NET Framework versions and dependencies.

Bir bilgisayarda yüklü .NET Framework sürümlerinin bir listesini almak için kayıt defterine erişim.To get a list of the .NET Framework versions installed on a computer, you access the registry. Kayıt defterini veya kodu sorgulamanız için bunu kullanın ya da Kayıt Defteri Düzenleyicisi'ni kullanabilirsiniz:You can either use the Registry Editor to view the registry or use code to query it:

Bir bilgisayarda yüklü CLR sürümlerin listesini almak için bir aracı veya kod kullanın:To get a list of the CLR versions installed on a computer, use a tool or code:

.NET Framework'ün her sürümü için yüklü güncelleştirmeleri algılama hakkında daha fazla bilgi için bkz: nasıl yapılır: Hangi .NET Framework güncelleştirmelerinin yüklü olduğunu belirleme.For information about detecting the installed updates for each version of the .NET Framework, see How to: Determine which .NET Framework updates are installed.

(4.5 ve üzeri) daha yeni .NET Framework sürümlerini bulmakFind newer .NET Framework versions (4.5 and later)

.NET Framework sürüm 4.5 ve sonraki kayıt defterinde bulunFind .NET Framework versions 4.5 and later in the registry

  1. Gelen Başlat menüsünde seçin çalıştırma, girin regeditve ardından Tamam.From the Start menu, choose Run, enter regedit, and then select OK.

    Regedit çalıştırmak için yönetici kimlik bilgileriniz olmalıdır.You must have administrative credentials to run regedit.

  2. Kayıt Defteri Düzenleyicisi'nde, aşağıdaki alt anahtarı açın: Hkey_local_machıne\software\microsoft\net Framework Setup\NDP\v4\Full.In the Registry Editor, open the following subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Varsa tam alt hazır değilse, ardından .NET Framework 4.5 yoksa veya sonraki bir sürümü yüklü.If the Full subkey isn't present, then you don't have the .NET Framework 4.5 or later installed.

    Not

    NET Framework Kurulum klasörünü mu değil bir noktayla başlar.The NET Framework Setup folder in the registry does not begin with a period.

  3. Adlı bir DWORD girişini denetleyin yayın.Check for a DWORD entry named Release. Varsa, ardından, .NET Framework 4.5 veya sonraki bir sürümünün yüklü olması.If it exists, then you have .NET Framework 4.5 or later versions installed. Değerini belirli bir .NET Framework sürümüne karşılık gelen bir yayın anahtardır.Its value is a release key that corresponds to a particular version of the .NET Framework. Aşağıdaki şekilde, örneğin değerini yayın girdidir 378389, .NET Framework 4.5 için yayın anahtar olduğu.In the following figure, for example, the value of the Release entry is 378389, which is the release key for .NET Framework 4.5.

    .NET Framework 4.5 için kayıt defteri girişiRegistry entry for the .NET Framework 4.5

Değeri aşağıdaki tabloda yayın DWORD tek işletim sistemlerinde .NET Framework 4.5 ve sonraki sürümler için.The following table lists the value of the Release DWORD on individual operating systems for .NET Framework 4.5 and later versions.

Önemli

Aşağıdaki tabloda, yalnızca .NET Framework sürümlerini anahtarlarını listeler.The following table lists the keys of released versions of the .NET Framework only. Bu önizleme veya yayın öncesi sürümler anahtarları listelenmiyor.It doesn't list the keys of preview or pre-release versions.

.NET Framework sürümü.NET Framework version Yayın DWORD değeriValue of the Release DWORD
.NET Framework 4.5.NET Framework 4.5 Tüm Windows işletim sistemleri: 378389All Windows operating systems: 378389
.NET Framework 4.5.1.NET Framework 4.5.1 Windows 8.1 ve Windows Server 2012 R2 üzerinde: 378675On Windows 8.1 and Windows Server 2012 R2: 378675
Diğer Windows üzerinde işletim sistemleri: 378758On all other Windows operating systems: 378758
.NET Framework 4.5.2.NET Framework 4.5.2 Tüm Windows işletim sistemleri: 379893All Windows operating systems: 379893
.NET Framework 4.6.NET Framework 4.6 Windows 10: 393295On Windows 10: 393295
Diğer Windows üzerinde işletim sistemleri: 393297On all other Windows operating systems: 393297
.NET Framework 4.6.1.NET Framework 4.6.1 Windows 10 Kasım güncelleştirmesi sistemlerinde: 394254On Windows 10 November Update systems: 394254
Diğer Windows üzerinde işletim sistemleri (Windows 10 dahil): 394271On all other Windows operating systems (including Windows 10): 394271
.NET Framework 4.6.2.NET Framework 4.6.2 Windows 10 Yıldönümü güncelleştirmesi ve Windows Server 2016 üzerinde: 394802On Windows 10 Anniversary Update and Windows Server 2016: 394802
Diğer Windows üzerinde işletim sistemleri (dahil diğer Windows 10 işletim sistemleri): 394806On all other Windows operating systems (including other Windows 10 operating systems): 394806
.NET framework 4.7.NET Framework 4.7 Üzerinde Windows 10 Creators güncelleştirmesi: 460798On Windows 10 Creators Update: 460798
Diğer Windows üzerinde işletim sistemleri (dahil diğer Windows 10 işletim sistemleri): 460805On all other Windows operating systems (including other Windows 10 operating systems): 460805
.NET framework 4.7.1.NET Framework 4.7.1 Windows 10 Fall Creators Update ve Windows Server 1709 sürümü: 461308On Windows 10 Fall Creators Update and Windows Server, version 1709: 461308
Diğer Windows üzerinde işletim sistemleri (dahil diğer Windows 10 işletim sistemleri): 461310On all other Windows operating systems (including other Windows 10 operating systems): 461310
.NET Framework 4.7.2.NET Framework 4.7.2 Windows 10 Nisan 2018 güncelleştirmesi ve Windows Server, 1803 sürüm: 461808On Windows 10 April 2018 Update and Windows Server, version 1803: 461808
Windows 10 Nisan 2018 dışındaki tüm Windows işletim sistemlerinde güncelleştirmesi ve Windows Server, 1803 sürüm: 461814On all Windows operating systems other than Windows 10 April 2018 Update and Windows Server, version 1803: 461814
.NET Framework 4.8.NET Framework 4.8 Windows 10 Mayıs 2019 güncelleştirmesinde: 528040On Windows 10 May 2019 Update: 528040
Diğer tüm üzerinde Windows işletim sistemleri (dahil diğer Windows 10 işletim sistemleri): 528049On all others Windows operating systems (including other Windows 10 operating systems): 528049

Bu değerleri şu şekilde kullanabilirsiniz:You can use these values as follows:

  • Belirli bir Windows işletim sistemi sürümü, .NET Framework'ün belirli bir sürümü yüklü olup olmadığını belirlemek için test olmadığını yayın DWORD değeri eşit listelenen değeri Tablo.To determine whether a specific version of the .NET Framework is installed on a particular version of the Windows operating system, test whether the Release DWORD value is equal to the value listed in the table. Örneğin, .NET Framework 4.6 bir Windows 10 sistemde mevcut olup olmadığını belirlemek için test bir yayın değeri olan eşit 393295.For example, to determine whether .NET Framework 4.6 is present on a Windows 10 system, test for the a Release value that is equal to 393295.

  • .NET Framework'ün en düşük bir sürüm mevcut olup olmadığını belirlemek için küçük kullanın yayın DWORD değeri bu sürümü için.To determine whether a minimum version of the .NET Framework is present, use the smaller RELEASE DWORD value for that version. Uygulamanız .NET Framework 4.6 veya sonraki bir sürümü altında çalışıyorsa, örneğin, test bir yayın DWORD değeri büyüktür veya eşittir 393295.For example, if your application runs under .NET Framework 4.6 or a later version, test for a RELEASE DWORD value that is greater than or equal to 393295. Yalnızca en düşük listeleyen bir tablo için yayın her .NET Framework sürümü için DWORD değerini görmek en düşük .NET Framework 4.5 ve sonraki sürümleri için yayın DWORD değerlerini.For a table that lists only the minimum RELEASE DWORD value for each .NET Framework version, see The minimum values of the Release DWORD for .NET Framework 4.5 and later versions.

  • Birden çok sürümü için test etmek için bir değer için test ederek başlamak büyüktür veya eşittir daha küçük bir DWORD değeri için en son .NET Framework sürümü ve her biri için değer daha küçük bir DWORD değeri ile karşılaştırmak art arda gelen önceki sürümü.To test for multiple versions, begin by testing for a value that is greater than or equal to the smaller DWORD value for the latest .NET Framework version, and then compare the value with the smaller DWORD value for each successive earlier version. İçin test ederek uygulamanızın gerektirdiği .NET Framework 4.7 veya üzeri ve mevcut .NET Framework'ün belirli sürümü belirlemek istiyorsanız, örneğin, başlangıç bir yayın DWORD değeri değerinden büyük veya eşittir 461808 (.NET Framework 4.7.2 için daha küçük DWORD değerini) için.For example, if your application requires .NET Framework 4.7 or later and you want to determine the specific version of .NET Framework present, start by testing for a RELEASE DWORD value that is great than or equal to to 461808 (the smaller DWORD value for .NET Framework 4.7.2). Ardından karşılaştırma yayın DWORD değerini daha sonra her .NET Framework sürümü için daha küçük değerine sahip.Then compare the RELEASE DWORD value with the smaller value for each later .NET Framework version. Yalnızca en düşük listeleyen bir tablo için yayın her .NET Framework sürümü için DWORD değerini görmek en düşük .NET Framework 4.5 ve sonraki sürümleri için yayın DWORD değerlerini.For a table that lists only the minimum RELEASE DWORD value for each .NET Framework version, see The minimum values of the Release DWORD for .NET Framework 4.5 and later versions.

.NET Framework sürüm 4.5 ve sonraki kodu bulunFind .NET Framework versions 4.5 and later with code

  1. Kullanım RegistryKey.OpenBaseKey ve RegistryKey.OpenSubKey erişmek için yöntemleri hkey_local_machıne\software\microsoft\net Framework Setup\NDP\v4\Full Windows kayıt defteri alt anahtarı.Use the RegistryKey.OpenBaseKey and RegistryKey.OpenSubKey methods to access the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full subkey in the Windows registry.

    Varlığını yayın DWORD girişte hkey_local_machıne\software\microsoft\net Framework Setup\NDP\v4\Full alt anahtar, .NET Framework 4.5 veya sonraki bir sürümü olduğunu gösterir bir bilgisayarda yüklü.The existence of the Release DWORD entry in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full subkey indicates that the .NET Framework 4.5 or a later version is installed on a computer.

  2. Değerini kontrol edin yayın yüklenen sürümü belirlemek için giriş.Check the value of the Release entry to determine the installed version. İleri uyumlu olacak şekilde, daha büyük bir değer olup olmadığını denetleyin veya listelenen değerine eşit .NET Framework sürüm tablosu.To be forward-compatible, check for a value greater than or equal to the value listed in the .NET Framework version table.

Aşağıdaki örnek değeri kontrol yayın yüklü olan sonraki sürümleri ve .NET Framework 4.5 bulmak için kayıt defteri girişi:The following example checks the value of the Release entry in the registry to find the .NET Framework 4.5 and later versions that are installed:

using System;
using Microsoft.Win32;

public class GetDotNetVersion
{
   public static void Main()
   {
      Get45PlusFromRegistry();
   }

   private static void Get45PlusFromRegistry()
   {
      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 >= 528040)
            return "4.8 or later";
         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";
      }
   }
}   
// This example displays output like the following:
//       .NET Framework Version: 4.6.1
Imports Microsoft.Win32

Public Module GetDotNetVersion
   Public Sub Main()
      Get45PlusFromRegistry()
   End Sub

   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 
            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 >= will enable forward compatibility.
   Private Function CheckFor45PlusVersion(releaseKey As Integer) As String
      If releaseKey >= 528040 Then
         Return "4.8 or later"
      Else If releaseKey >= 461808 Then
         Return "4.7.2" 
      Else If releaseKey >= 461308 Then
         Return "4.7.1"
      Else If releaseKey >= 460798 Then
         Return "4.7"
      Else If releaseKey >= 394802 Then
         Return "4.6.2"
      Else If releaseKey >= 394254 Then 
         Return "4.6.1"
      Else If releaseKey >= 393295 Then
         Return "4.6"
      Else If releaseKey >= 379893 Then
         Return "4.5.2"
      Else If releaseKey >= 378675 Then
         Return "4.5.1"
      Else If 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
End Module   
' The example displays output like the following:
'       .NET Framework Version: 4.6.1

Bu örnek, sürüm denetimi için önerilen yöntem aşağıda verilmiştir:This example follows the recommended practice for version checking:

  • Denetler olup olmadığını değerini yayın girdidir büyüktür veya eşittir bilinen yayın anahtar değeri.It checks whether the value of the Release entry is greater than or equal to the value of the known release keys.

  • Eski sürümü için en son sürüm sırayla denetler.It checks in order from most recent version to earliest version.

Gereken en düşük .NET Framework sürümünü (4.5 ve üzeri) PowerShell ile denetleCheck for a minimum-required .NET Framework version (4.5 and later) with PowerShell

  • Değerini denetlemek için PowerShell komutlarını kullanın yayın girişi hkey_local_machıne\software\microsoft\net Framework Setup\NDP\v4\Full alt.Use PowerShell commands to check the value of the Release entry of the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full subkey.

Aşağıdaki örnekler değerini kontrol edin yayın belirlemek için giriş olmadığını .NET Framework 4.6.2 veya üzeri yüklü.The following examples check the value of the Release entry to determine whether the .NET Framework 4.6.2 or later is installed. Bu kodu döndürür True yüklüyse ve False Aksi takdirde.This code returns True if it's installed and False otherwise.

# PowerShell 5
 Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' |  Get-ItemPropertyValue -Name Release | Foreach-Object { $_ -ge 394802 }
# PowerShell 4
(Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release -ge 394802

Bir farklı gereken en düşük .NET Framework sürümü için denetlenecek değiştirin 394802 ile bu örneklerde bir yayın değerini .NET Framework sürüm tablosu.To check for a different minimum-required .NET Framework version, replace 394802 in these examples with a Release value from the .NET Framework version table.

Eski .NET Framework sürümlerini bulmak (1–4)Find older .NET Framework versions (1–4)

.NET Framework sürümlerini 1 bulmak–4'te kayıt defteriFind .NET Framework versions 1–4 in the registry

  1. Gelen Başlat menüsünde seçin çalıştırma, girin regeditve ardından Tamam.From the Start menu, choose Run, enter regedit, and then select OK.

    Regedit çalıştırmak için yönetici kimlik bilgileriniz olmalıdır.You must have administrative credentials to run regedit.

  2. Kayıt Defteri Düzenleyicisi'nde, aşağıdaki alt anahtarı açın: Hkey_local_machıne\software\microsoft\net Framework Setup\NDP:In the Registry Editor, open the following subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP:

    • .NET Framework sürüm 3.5 ile 1.1 yüklü her sürüm alt anahtarı altında listelenir hkey_local_machıne\software\microsoft\net Framework Setup\NDP alt.For .NET Framework versions 1.1 through 3.5, each installed version is listed as a subkey under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP subkey. Örneğin, hkey_local_machıne\software\microsoft\net Framework Setup\NDP\v3.5.For example, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5. Sürüm numarasını sürümü alt anahtarının değeri olarak depolanan sürüm girişi.The version number is stored as a value in the version subkey's Version entry.

    • .NET Framework 4 için sürüm girdidir altında hkey_local_machıne\software\microsoft\net Framework Setup\NDP\v4.0\Client alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\NET Framework Setup\NDP\v4.0\Full alt anahtar, veya her iki alt altında.For .NET Framework 4, the Version entry is under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.0\Client subkey, the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.0\Full subkey, or under both subkeys.

    Not

    NET Framework Kurulum klasörünü noktayla başlayan değil.The NET Framework Setup folder in the registry does not begin with a period.

    Alt aşağıdaki şekilde gösterilmiştir ve kendi sürüm .NET Framework 3.5 için giriş.The following figure shows the subkey and its Version entry for the .NET Framework 3.5.

    .NET Framework 3.5 için kayıt defteri girişi. The registry entry for the .NET Framework 3.5.

.NET Framework sürümlerini 1 bulmak–kodla 4Find .NET Framework versions 1–4 with code

  • Kullanım Microsoft.Win32.RegistryKey sınıfı erişimi hkey_local_machıne\software\microsoft\net Framework Setup\NDP Windows kayıt defteri alt anahtarı.Use the Microsoft.Win32.RegistryKey class to access the HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP subkey in the Windows registry.

Aşağıdaki örnek, .NET Framework 1 bulur–yüklü olan 4 sürümleri:The following example finds the .NET Framework 1–4 versions that are installed:

using Microsoft.Win32;
using System;

public static class VersionTest
{
    public static void Main()
    {
        GetVersionFromRegistry();
    }
    
    private static void GetVersionFromRegistry()
    {
        // Opens 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, or an empty string if there is none.
                    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 (!(string.IsNullOrEmpty(sp)) && install == "1")
                        {
                            Console.WriteLine($"{versionKeyName}  {name}  SP{sp}");
                        }
                    }
                    if (! string.IsNullOrEmpty(name))
                    {
                        continue;
                    }
                    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 (!(string.IsNullOrEmpty(sp )) && install == "1")
                            {
                                Console.WriteLine($"{subKeyName}  {name}  SP{sp}");
                            }
                            else if (install == "1")
                            {
                                Console.WriteLine($"  {subKeyName}  {name}");
                            }
                        }
                    }
                }
            }
        }
    }
}
// The example displays output similar to the following:
//        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
Imports Microsoft.Win32

Public Module VersionTest
    Public Sub Main()
        GetVersionFromRegistry()
    End Sub
    
    Private Sub GetVersionFromRegistry()

        ' 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}")
                    Else
                        If Not String.IsNullOrEmpty(sp) AndAlso install = "1" Then
                            Console.WriteLine($"{versionKeyName}  {name}  SP{sp}")
                        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}")
                        Else
                            If Not String.IsNullOrEmpty(sp) AndAlso install = "1" Then
                                Console.WriteLine($"{subKeyName}  {name}  SP{sp}")
                            ElseIf install = "1" Then
                                Console.WriteLine($"  {subKeyName}  {name}")
                            End If
                        End If
                    Next
                End If
            Next
        End Using
    End Sub
End Module
' The example displays output similar to the following:
'        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

CLR sürümleri bulunFind CLR versions

Clrver.exe geçerli CLR sürümüyle BulFind the current CLR version with Clrver.exe

Kullanım CLR sürüm Aracı (Clrver.exe) CLR'ın hangi sürümleri bir bilgisayarda yüklü olduğunu saptamak için:Use the CLR Version tool (Clrver.exe) to determine which versions of the CLR are installed on a computer:

Geçerli ortam sınıfını CLR sürümüyle BulFind the current CLR version with the Environment class

Önemli

.NET Framework 4.5 ve sonraki sürümler için kullanmadığınız Environment.Version özelliği CLR sürümünü algılayamaz.For the .NET Framework 4.5 and later versions, don't use the Environment.Version property to detect the version of the CLR. Bunun yerine, açıklanan şekilde kayıt defterini sorgulayın Bul .NET Framework sürüm 4.5 ve sonraki kod ile.Instead, query the registry as described in Find .NET Framework versions 4.5 and later with code.

  1. Sorgu Environment.Version almak için özellik bir Version nesne.Query the Environment.Version property to retrieve a Version object.

    Döndürülen System.Version nesne şu anda kodu yürüten çalışma zamanının sürümünü tanımlar.The returned System.Version object identifies the version of the runtime that's currently executing the code. Derleme sürümlerini ya da diğer sürümleri bilgisayarda yüklü çalışma zamanı döndürmüyor.It doesn't return assembly versions or other versions of the runtime that may have been installed on the computer.

    .NET Framework sürüm 4, 4.5, 4.5.1 ve 4.5.2'yi, döndürülen dize gösterimi için Version nenesindeki formun 4.0.30319. xxxxxburada xxxxx küçüktür 42000 olduğu.For the .NET Framework versions 4, 4.5, 4.5.1, and 4.5.2, the string representation of the returned Version object has the form 4.0.30319.xxxxx, where xxxxx is less than 42000. .NET Framework 4.6 ve sonraki sürümler için formun 4.0.30319.42000 sahiptir.For the .NET Framework 4.6 and later versions, it has the form 4.0.30319.42000.

  2. Sonra Version nesne, şu şekilde sorgulayın:After you have the Version object, query it as follows:

    • Tanımlayıcı için ana sürüm (örneğin, 4 sürüm 4.0 için), kullanın Version.Major özelliği.For the major release identifier (for example, 4 for version 4.0), use the Version.Major property.

    • Tanımlayıcı için ikincil sürüm (örneğin, 0 sürüm 4.0 için), kullanın Version.Minor özelliği.For the minor release identifier (for example, 0 for version 4.0), use the Version.Minor property.

    • İçin tüm sürüm dizesini (örneğin, 4.0.30319.18010), kullanın Version.ToString yöntemi.For the entire version string (for example, 4.0.30319.18010), use the Version.ToString method. Bu yöntem, kodu yürüten çalışma zamanının sürümünü gösteren tek bir değer döndürür.This method returns a single value that reflects the version of the runtime that's executing the code. Derleme sürümlerini veya bilgisayarda yüklü diğer çalışma zamanı sürümleri döndürmez.It doesn't return assembly versions or other runtime versions that may be installed on the computer.

Aşağıdaki örnekte Environment.Version CLR sürümü bilgisini almak için özellik:The following example uses the Environment.Version property to retrieve CLR version information:

using System;

public class VersionTest
{
    public static void Main()
    {
        Console.WriteLine($"Version: {Environment.Version}");
    }
}
// The example displays output similar to the following:'
//    Version: 4.0.30319.18010
Imports Microsoft.Win32

Public Module VersionTest
   Public Sub Main()
      GetVersionFromEnvironment()
   End Sub
   
    Private Sub GetVersionFromEnvironment()
        Console.WriteLine($"Version: {Environment.Version}")
    End Sub
End Module
' The example displays output similiar to the following:'
'    Version: 4.0.30319.18010

Ayrıca bkz.See also