Postupy: určení, které verze .NET Framework jsou nainstaloványHow to: Determine which .NET Framework versions are installed

Uživatelé mohou na svých počítačích instalovat a spouštět více verzí .NET Framework.Users can install and run multiple versions of the .NET Framework on their computers. Když vyvíjíte nebo nasazujete aplikaci, možná budete potřebovat informace o tom, které verze .NET Framework jsou nainstalovány v počítači uživatele.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 se skládá ze dvou hlavních součástí, které jsou ve verzi samostatně:The .NET Framework consists of two main components, which are versioned separately:

  • Sada sestavení, což jsou kolekce typů a prostředků, které poskytují funkce pro vaše aplikace.A set of assemblies, which are collections of types and resources that provide the functionality for your apps. .NET Framework a sestavení sdílejí stejné číslo verze.The .NET Framework and assemblies share the same version number.

  • Modul CLR (Common Language Runtime), který spravuje a spouští kód vaší aplikace.The common language runtime (CLR), which manages and executes your app's code. Modul CLR je identifikován vlastním číslem verze (viz verze a závislosti).The CLR is identified by its own version number (see Versions and Dependencies).

Poznámka

Každá nová verze rozhraní .NET Framework zachovává funkce předchozích verzí a přidává nové funkce.Each new version of the .NET Framework retains features from the previous versions and adds new features. V jednom počítači můžete načíst několik verzí .NET Framework současně, což znamená, že můžete nainstalovat .NET Framework bez nutnosti odinstalování předchozích verzí.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. Obecně platí, že byste neměli odinstalovat předchozí verze .NET Framework, protože na konkrétní verzi může záviset aplikace, kterou používáte, a v případě, že je tato verze odebrána, může dojít k přerušení.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.

Existuje rozdíl mezi verzí .NET Framework a verzí CLR:There is a difference between the .NET Framework version and the CLR version:

  • Verze .NET Framework je založena na sadě sestavení, které tvoří knihovnu tříd .NET Framework.The .NET Framework version is based on the set of assemblies that form the .NET Framework class library. Například verze .NET Framework zahrnují 4,5, 4.6.1 a 4.7.2.For example, .NET Framework versions include 4.5, 4.6.1, and 4.7.2.
  • Verze CLR je založená na modulu runtime, ve kterém se .NET Framework aplikace spouštějí.The CLR version is based on the runtime on which .NET Framework applications execute. Jedna verze modulu CLR obvykle podporuje více .NET Framework verzí.A single CLR version typically supports multiple .NET Framework versions. Například CLR verze 4.0.30319. xxxxx podporuje .NET Framework verze 4 až 4.5.2, kde xxxxx je méně než 42000 a CLR verze 4.0.30319.42000 podporuje .NET Framework verze počínaje .NET Framework 4,6.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.

Další informace o verzích najdete v tématu .NET Framework verze a závislosti.For more information about versions, see .NET Framework versions and dependencies.

Chcete-li získat seznam verzí .NET Framework nainstalovaných v počítači, získáte přístup k registru.To get a list of the .NET Framework versions installed on a computer, you access the registry. K zobrazení registru nebo použití kódu k dotazování můžete použít Editor registru:You can either use the Registry Editor to view the registry or use code to query it:

Chcete-li získat seznam verzí modulu CLR nainstalovaných v počítači, použijte nástroj nebo kód:To get a list of the CLR versions installed on a computer, use a tool or code:

Informace o zjišťování nainstalovaných aktualizací pro každou verzi .NET Framework najdete v tématu How to: Určete, které .NET Framework aktualizace se mají nainstalovat.For information about detecting the installed updates for each version of the .NET Framework, see How to: Determine which .NET Framework updates are installed.

Najít novější verze .NET Framework (4,5 a novější)Find newer .NET Framework versions (4.5 and later)

Najít .NET Framework verze 4,5 a novější v registruFind .NET Framework versions 4.5 and later in the registry

  1. V nabídce Start klikněte na příkaz Spustit, zadejte příkaz regedita pak vyberte OK.From the Start menu, choose Run, enter regedit, and then select OK.

    Chcete-li spustit nástroj Regedit, musíte mít pověření správce.You must have administrative credentials to run regedit.

  2. V editoru registru otevřete následující podklíč: HKEY_LOCAL_MACHINE\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. Pokud není přítomen úplný podklíč, nemáte nainstalovanou .NET Framework 4,5 nebo novější.If the Full subkey isn't present, then you don't have the .NET Framework 4.5 or later installed.

    Poznámka

    Složka pro instalaci rozhraní .NET Framework v registru nezačíná tečkou .The NET Framework Setup folder in the registry does not begin with a period.

  3. Vyhledejte položku DWORD s názvem release.Check for a DWORD entry named Release. Pokud existuje, budete mít nainstalované .NET Framework 4,5 nebo novější verze.If it exists, then you have .NET Framework 4.5 or later versions installed. Jeho hodnota je klíč verze, který odpovídá konkrétní verzi .NET Framework.Its value is a release key that corresponds to a particular version of the .NET Framework. Na následujícím obrázku je například hodnota položky release 378389, což je klíč verze .NET Framework 4,5.In the following figure, for example, the value of the Release entry is 378389, which is the release key for .NET Framework 4.5.

    Položka registru pro položku registru .NET Framework 4,5Registry entry for the .NET Framework 4.5

V následující tabulce je uvedena hodnota DWORD verze v jednotlivých operačních systémech .NET Framework 4,5 a novějších verzích.The following table lists the value of the Release DWORD on individual operating systems for .NET Framework 4.5 and later versions.

Důležité

V následující tabulce jsou uvedeny klíčů vydaných verzích rozhraní .NET Framework.The following table lists the keys of released versions of the .NET Framework only. Neobsahuje klíče ve verzi preview nebo předběžné verze.It doesn't list the keys of preview or pre-release versions.

Verze rozhraní .NET Framework.NET Framework version Hodnota DWORD verzeValue of the Release DWORD
.NET Framework 4.5.NET Framework 4.5 Všechny operační systémy Windows: 378389All Windows operating systems: 378389
.NET Framework 4.5.1.NET Framework 4.5.1 V Windows 8.1 a Windows Server 2012 R2:378675On Windows 8.1 and Windows Server 2012 R2: 378675
Ve všech ostatních operačních systémech Windows: 378758On all other Windows operating systems: 378758
.NET Framework 4.5.2.NET Framework 4.5.2 Všechny operační systémy Windows: 379893All Windows operating systems: 379893
.NET Framework 4.6.NET Framework 4.6 Ve Windows 10:393295On Windows 10: 393295
Ve všech ostatních operačních systémech Windows: 393297On all other Windows operating systems: 393297
.NET Framework 4.6.1.NET Framework 4.6.1 V systémech Windows 10 listopad Update: 394254On Windows 10 November Update systems: 394254
Ve všech ostatních operačních systémech Windows (včetně Windows 10): 394271On all other Windows operating systems (including Windows 10): 394271
.NET Framework 4.6.2.NET Framework 4.6.2 Ve Windows 10 – aktualizace pro výročí a Windows Server 2016:394802On Windows 10 Anniversary Update and Windows Server 2016: 394802
Ve všech ostatních operačních systémech Windows (včetně dalších operačních systémů Windows 10): 394806On all other Windows operating systems (including other Windows 10 operating systems): 394806
.NET Framework 4,7.NET Framework 4.7 Ve Windows 10 Creators Update: 460798On Windows 10 Creators Update: 460798
Ve všech ostatních operačních systémech Windows (včetně dalších operačních systémů Windows 10): 460805On all other Windows operating systems (including other Windows 10 operating systems): 460805
.NET Framework 4.7.1.NET Framework 4.7.1 V systému Windows 10 patří mezi tvůrci aktualizace a Windows Server verze 1709:461308On Windows 10 Fall Creators Update and Windows Server, version 1709: 461308
Ve všech ostatních operačních systémech Windows (včetně dalších operačních systémů Windows 10): 461310On all other Windows operating systems (including other Windows 10 operating systems): 461310
.NET Framework 4.7.2.NET Framework 4.7.2 Ve Windows 10. dubna 2018 Update a Windows Server verze 1803:461808On Windows 10 April 2018 Update and Windows Server, version 1803: 461808
Ve všech operačních systémech Windows s výjimkou Windows 10 dubna 2018 Update a Windows Server verze 1803: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 Ve Windows 10 Květen 2019 Update: 528040On Windows 10 May 2019 Update: 528040
Pro všechny ostatní operační systémy Windows (včetně dalších operačních systémů Windows 10): 528049On all others Windows operating systems (including other Windows 10 operating systems): 528049

Tyto hodnoty můžete použít následujícím způsobem:You can use these values as follows:

  • Chcete-li zjistit, zda je v konkrétní verzi operačního systému Windows nainstalována konkrétní verze .NET Framework, proveďte test, zda je hodnota DWORD verze shodná s hodnotou uvedenou v tabulce.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. Chcete-li například zjistit, zda je v systému Windows 10 .NET Framework 4,6, proveďte test na hodnotu verze , která se rovná 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.

  • Chcete-li zjistit, zda je k dispozici minimální verze .NET Framework, použijte pro tuto verzi hodnotu DWORD s nižší verzí.To determine whether a minimum version of the .NET Framework is present, use the smaller RELEASE DWORD value for that version. Například pokud vaše aplikace běží pod .NET Framework 4,6 nebo novější verzí, otestujte hodnotu DWORD verze , která je větší nebo rovna 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. Tabulku, která obsahuje pouze minimální hodnotu DWORD verze pro každou .NET Framework verzi, naleznete v části minimální hodnoty dword verze pro .NET Framework 4,5 a novější verze.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.

  • Chcete-li otestovat více verzí, začněte testováním na hodnotu, která je větší nebo rovna menší hodnotě DWORD pro nejnovější verzi .NET Framework, a pak porovnejte hodnotu s menší hodnotou DWORD pro každou následnou dřívější verzi.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. Například pokud vaše aplikace vyžaduje .NET Framework 4,7 nebo novější a chcete určit konkrétní verzi .NET Framework přítomná, začněte testováním hodnoty DWORD verze , která je větší nebo rovna 461808 (menší hodnota DWORD hodnota pro .NET Framework 4.7.2).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). Pak porovnejte hodnotu DWORD verze s menší hodnotou pro každou pozdější .NET Framework verzi.Then compare the RELEASE DWORD value with the smaller value for each later .NET Framework version. Tabulku, která obsahuje pouze minimální hodnotu DWORD verze pro každou .NET Framework verzi, naleznete v části minimální hodnoty dword verze pro .NET Framework 4,5 a novější verze.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.

Najít .NET Framework verze 4,5 a novější s kódemFind .NET Framework versions 4.5 and later with code

  1. Použijte metody RegistryKey.OpenBaseKey a RegistryKey.OpenSubKey pro přístup k podklíči Setup\NDP\v4\Full rozhraní HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework v registru systému Windows.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.

    Existence položky DWORD verze v podklíči HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full označuje, že v počítači je nainstalována .NET Framework 4,5 nebo novější verze.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. Zkontrolujte hodnotu položky release a určete nainstalovanou verzi.Check the value of the Release entry to determine the installed version. Chcete-li být kompatibilní s přesměrováním, vyhledejte hodnotu větší nebo rovnou hodnotě uvedené v tabulce verze .NET Framework.To be forward-compatible, check for a value greater than or equal to the value listed in the .NET Framework version table.

Následující příklad zkontroluje hodnotu položky release v registru, aby bylo možné najít .NET Framework 4,5 a novější verze, které jsou nainstalovány: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

Tento příklad se skládá z doporučené praxe pro kontrolu verzí:This example follows the recommended practice for version checking:

  • Kontroluje, zda je hodnota položky verze větší než nebo rovna hodnotě známých klíčů pro vydání.It checks whether the value of the Release entry is greater than or equal to the value of the known release keys.

  • Kontroluje v pořadí od nejnovější verze k nejstarší verzi.It checks in order from most recent version to earliest version.

Vyhledání minimální požadované verze .NET Framework (4,5 a novější) pomocí prostředí PowerShellCheck for a minimum-required .NET Framework version (4.5 and later) with PowerShell

  • Pomocí příkazů PowerShellu zkontrolujete hodnotu položky release podklíče Setup\NDP\v4\Full HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework .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.

Následující příklady kontrolují hodnotu položky verze , abyste zjistili, jestli je nainstalovaná .NET Framework 4.6.2 nebo novější.The following examples check the value of the Release entry to determine whether the .NET Framework 4.6.2 or later is installed. Tento kód vrátí True, pokud je nainstalován, a False v opačném případě.This code returns True if it's installed and False otherwise.

(Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release -ge 394802

Chcete-li vyhledat jinou minimální požadovanou verzi .NET Framework, nahraďte 394802 v těchto příkladech hodnotou Release z tabulky .NET Framework verze.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.

Najít starší verze .NET Frameworku (–1 4)Find older .NET Framework versions (1–4)

Najít .NET Framework verze 1–4 v registruFind .NET Framework versions 1–4 in the registry

  1. V nabídce Start klikněte na příkaz Spustit, zadejte příkaz regedita pak vyberte OK.From the Start menu, choose Run, enter regedit, and then select OK.

    Chcete-li spustit nástroj Regedit, musíte mít pověření správce.You must have administrative credentials to run regedit.

  2. V editoru registru otevřete následující podklíč: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP:In the Registry Editor, open the following subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP:

    • Pro .NET Framework verze 1,1 až 3,5 je každá nainstalovaná verze uvedena jako podklíč v podklíči HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP .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. Například HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5.For example, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5. Číslo verze je uloženo jako hodnota v položce verze podklíče verze.The version number is stored as a value in the version subkey's Version entry.

    • V případě .NET Framework 4 je položka verze pod podklíčem Setup\NDP\v4.0\Client rozhraní HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework , HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.0\Full podklíče nebo pod oběma podklíči.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.

    Poznámka

    Složka pro instalaci rozhraní .NET Framework v registru nezačíná tečkou.The NET Framework Setup folder in the registry does not begin with a period.

    Následující obrázek ukazuje podklíč a jeho položku verze pro .NET Framework 3,5.The following figure shows the subkey and its Version entry for the .NET Framework 3.5.

    Položka registru pro .NET Framework 3,5.The registry entry for the .NET Framework 3.5.

Najít .NET Framework verze 1–4 s kódemFind .NET Framework versions 1–4 with code

  • Použijte třídu Microsoft.Win32.RegistryKey pro přístup k podklíči Setup\NDP rozhraní HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework v registru systému Windows.Use the Microsoft.Win32.RegistryKey class to access the HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP subkey in the Windows registry.

Následující příklad najde nainstalované verze .NET Framework 1–4: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

Najít verze CLRFind CLR versions

Vyhledat aktuální verzi CLR pomocí nástroje Clrver. exeFind the current CLR version with Clrver.exe

K určení, které verze modulu CLR jsou nainstalovány v počítači, použijte Nástroj verze CLR (Clrver. exe) :Use the CLR Version tool (Clrver.exe) to determine which versions of the CLR are installed on a computer:

Vyhledat aktuální verzi CLR pomocí třídy EnvironmentFind the current CLR version with the Environment class

Důležité

U .NET Framework 4,5 a novějších verzí nepoužívejte vlastnost Environment.Version k detekci verze modulu CLR.For the .NET Framework 4.5 and later versions, don't use the Environment.Version property to detect the version of the CLR. Místo toho proveďte dotaz na registr, jak je popsáno v části Find .NET Framework verze 4,5 a novější s kódem.Instead, query the registry as described in Find .NET Framework versions 4.5 and later with code.

  1. Pomocí dotazu na vlastnost Environment.Version načtěte objekt Version.Query the Environment.Version property to retrieve a Version object.

    Vrácený objekt System.Version identifikuje verzi modulu runtime, který aktuálně spouští kód.The returned System.Version object identifies the version of the runtime that's currently executing the code. Nevrací verze sestavení ani jiné verze modulu runtime, které mohou být nainstalovány v počítači.It doesn't return assembly versions or other versions of the runtime that may have been installed on the computer.

    U .NET Framework verzí 4, 4,5, 4.5.1 a 4.5.2 má řetězcová reprezentace vráceného objektu Version formu 4.0.30319. xxxxx, kde xxxxx je menší než 42000.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. U .NET Framework 4,6 a novějších verzí má formulář 4.0.30319.42000.For the .NET Framework 4.6 and later versions, it has the form 4.0.30319.42000.

  2. Až budete mít objekt Version, proveďte dotazování následujícím způsobem:After you have the Version object, query it as follows:

    • Pro hlavní identifikátor vydaných verzí (například 4 pro verzi 4,0) použijte vlastnost Version.Major.For the major release identifier (for example, 4 for version 4.0), use the Version.Major property.

    • V případě identifikátoru podverze (například 0 pro verzi 4,0) použijte vlastnost Version.Minor.For the minor release identifier (for example, 0 for version 4.0), use the Version.Minor property.

    • Pro řetězec celé verze (například 4.0.30319.18010) použijte metodu Version.ToString.For the entire version string (for example, 4.0.30319.18010), use the Version.ToString method. Tato metoda vrátí jednu hodnotu, která odráží verzi modulu runtime, který spouští kód.This method returns a single value that reflects the version of the runtime that's executing the code. Nevrací verze sestavení ani jiné verze modulu runtime, které mohou být nainstalovány v počítači.It doesn't return assembly versions or other runtime versions that may be installed on the computer.

Následující příklad používá vlastnost Environment.Version pro načtení informací o verzi CLR: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

Viz také:See also