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. Registr obsahuje seznam verzí .NET Framework nainstalovaných v počítači.The registry contains a list of the .NET Framework versions installed on a 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. 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.

  • 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. 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 , kde xxxxx je nižší než 42000, podporuje .NET Framework verze 4 až 4.5.2.For example, CLR version 4.0.30319.xxxxx where xxxxx is less than 42000, supports .NET Framework versions 4 through 4.5.2. Verze CLR větší než nebo rovna 4.0.30319.42000 podporuje .NET Framework verze počínaje .NET Framework 4,6.CLR version greater than or equal to 4.0.30319.42000 supports .NET Framework versions starting with .NET Framework 4.6.

K dispozici jsou nástroje pro údržbu komunity, které vám pomůžou zjistit, které verze .NET Framework jsou nainstalované:Community-maintained tools are available to help detect which .NET Framework versions are installed:

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.

Zjistit .NET Framework 4,5 a novější verzeDetect .NET Framework 4.5 and later versions

Verze .NET Framework (4,5 a novější) nainstalovaná na počítači je uvedená v registru na adrese HKEY_LOCAL_MACHINE\softwaru\Microsoft\NET Framework Setup\NDP\v4\Full.The version of .NET Framework (4.5 and later) installed on a machine is listed in the registry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Pokud chybí úplný podklíč, pak .NET Framework 4,5 nebo vyšší není nainstalováno.If the Full subkey is missing, then .NET Framework 4.5 or above isn't installed.

Poznámka

Podklíč instalace rozhraní .NET Framework v cestě registru nezačíná tečkou .The NET Framework Setup subkey in the registry path does not begin with a period.

Hodnota REG_DWORD verze v registru představuje verzi .NET Framework, která je nainstalovaná.The Release REG_DWORD value in the registry represents the version of .NET Framework installed.

Verze rozhraní .NET Framework.NET Framework version Hodnota verzeValue of Release
.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
Rozhraní .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ětna 2019 Update a Windows 10 listopadu 2019 Update: 528040On Windows 10 May 2019 Update and Windows 10 November 2019 Update: 528040
Ve Windows 10 a Windows serveru verze 1909:528209On Windows 10 and Windows Server, version 1909: 528209
Ve všech ostatních operačních systémech Windows (včetně dalších operačních systémů Windows 10): 528049On all other Windows operating systems (including other Windows 10 operating systems): 528049

Minimální verzeMinimum version

Chcete-li určit, zda je k dispozici minimální verze .NET Framework, použijte nejnižší hodnotu verze REG_DWORD pro tuto verzi z předchozí tabulky.To determine whether a minimum version of the .NET Framework is present, use the smallest Release REG_DWORD value for that version from the previous table.

Například pokud vaše aplikace běží pod .NET Framework 4,8 nebo novější verzí, otestuje REG_DWORD hodnotu verze , která je větší nebo rovna 528040.For example, if your application runs under .NET Framework 4.8 or a later version, test for a Release REG_DWORD value that is greater than or equal to 528040.

Verze rozhraní .NET Framework.NET Framework version Minimální hodnotaMinimum value
.NET Framework 4.5.NET Framework 4.5 378389378389
.NET Framework 4.5.1.NET Framework 4.5.1 378675378675
.NET Framework 4.5.2.NET Framework 4.5.2 379893379893
.NET Framework 4.6.NET Framework 4.6 393295393295
.NET Framework 4.6.1.NET Framework 4.6.1 394254394254
.NET Framework 4.6.2.NET Framework 4.6.2 394802394802
Rozhraní .NET framework 4.7.NET Framework 4.7 460798460798
.NET Framework 4.7.1.NET Framework 4.7.1 461308461308
.NET Framework 4.7.2.NET Framework 4.7.2 461808461808
.NET Framework 4,8.NET Framework 4.8 528040528040

Použití Editoru registruUse Registry Editor

  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.

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

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

Použití PowerShellu k vyhledání minimální verzeUse PowerShell to check for a minimum version

Použijte příkazy prostředí PowerShell ke kontrole hodnoty položky Release HKEY_LOCAL_MACHINE\softwaru\Microsoft\NET Framework Setup\NDP\v4\Full podklíč.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 jinak.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

Dotazování registru pomocí kóduQuery the registry using code

  1. Použijte metody RegistryKey.OpenBaseKey a RegistryKey.OpenSubKey pro přístup ke HKEY_LOCAL_MACHINE\softwaru\Microsoft\NET Framework Setup\NDP\v4\Full podklíč v registru 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.

    Důležité

    Pokud aplikace, kterou používáte, je 32 a běží v 64 bitovém systému Windows, cesty registru se budou lišit od dříve uvedených.If the app you're running is 32-bit and running in 64-bit Windows, the registry paths will be different than previously listed. 64 registr je k dispozici v HKEY_LOCAL_MACHINE\softwaru\Wow6432Node\ podklíč.The 64-bit registry is available in the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ subkey. Například podklíč registru pro .NET Framework 4,5 je HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.For example, the registry subkey for .NET Framework 4.5 is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

  2. Pokud chcete zjistit nainstalovanou verzi, zkontrolujte hodnotu REG_DWORD verze .Check the Release REG_DWORD value 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.

Detekovat .NET Framework 1,0 až 4,0Detect .NET Framework 1.0 through 4.0

Každá verze .NET Framework od 1,1 do 4,0 je uvedena jako podklíč na HKEY_LOCAL_MACHINE\softwaru\Microsoft\NET Framework Setup\NDP.Each version of .NET Framework from 1.1 to 4.0 is listed as a subkey at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP. Následující tabulka uvádí cestu ke každé verzi .NET Framework.The following table lists the path to each .NET Framework version. Pro většinu verzí je k dispozici REG_DWORD hodnota 1, která označuje, že je tato verze nainstalovaná.For most versions, there's a Install REG_DWORD value of 1 to indicate this version is installed. V těchto podklíčích je také REG_SZ hodnota verze , která obsahuje řetězec verze.In these subkeys, there's also a Version REG_SZ value that contains a version string.

Poznámka

Podklíč instalace rozhraní .NET Framework v cestě registru nezačíná tečkou .The NET Framework Setup subkey in the registry path does not begin with a period.

Verze frameworkuFramework Version Podklíč registruRegistry Subkey HodnotaValue
1.01.0 HKLM\software\\Microsoftu. NETFramework\Policy\v 1.0\3705HKLM\Software\Microsoft\.NETFramework\Policy\v1.0\3705 Nainstalovat REG_SZ rovná 1Install REG_SZ equals 1
1.11.1 HKLM\software\Microsoft\.NET Framework Setup\NDP\v 1.1.4322HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 Nainstalovat REG_DWORD rovná 1Install REG_DWORD equals 1
2.02.0 HKLM\software\Microsoft\.NET Framework Setup\NDP\v 2.0.50727HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Nainstalovat REG_DWORD rovná 1Install REG_DWORD equals 1
3.03.0 HKLM\software\Microsoft\nastavení rozhraní .NET Framework Setup\NDP\v 3.0\SetupHKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup InstallSuccess REG_DWORD rovná 1InstallSuccess REG_DWORD equals 1
3,53.5 HKLM\software\Microsoft\.NET Framework Setup\NDP\v 3.5HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 Nainstalovat REG_DWORD rovná 1Install REG_DWORD equals 1
Profil klienta 4,04.0 Client Profile HKLM\software\Microsoft\nastavení rozhraní .NET Framework Setup\NDP\v4\ClientHKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client Nainstalovat REG_DWORD rovná 1Install REG_DWORD equals 1
úplný profil 4,04.0 Full Profile HKLM\software\Microsoft\.NET Framework Setup\NDP\v4\FullHKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full Nainstalovat REG_DWORD rovná 1Install REG_DWORD equals 1

Důležité

Pokud aplikace, kterou používáte, je 32 a běží v 64 bitovém systému Windows, cesty registru se budou lišit od dříve uvedených.If the app you're running is 32-bit and running in 64-bit Windows, the registry paths will be different than previously listed. 64 registr je k dispozici v HKEY_LOCAL_MACHINE\softwaru\Wow6432Node\ podklíč.The 64-bit registry is available in the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ subkey. Například podklíč registru pro .NET Framework 3,5 je HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\instalaci Microsoft\NET Framework\NDP\v 3.5.For example, the registry subkey for .NET Framework 3.5 is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

Všimněte si, že cesta k registru pro podklíč .NET Framework 1,0 se liší od ostatních.Notice that the registry path to the .NET Framework 1.0 subkey is different from the others.

Použití Editoru registru (starší verze rozhraní)Use Registry Editor (older framework versions)

  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. Otevřete podklíč, který odpovídá verzi, kterou chcete ověřit.Open the subkey that matches the version you want to check. Použijte tabulku v části Detect .NET Framework 1,0 až 4,0 .Use the table in the Detect .NET Framework 1.0 through 4.0 section.

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

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

Dotazování registru pomocí kódu (starší verze rozhraní)Query the registry using code (older framework versions)

Použijte třídu Microsoft.Win32.RegistryKey pro přístup ke HKEY_LOCAL_MACHINE\softwaru\Microsoft\NET Framework Setup\ podklíč 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.

Důležité

Pokud aplikace, kterou používáte, je 32 a běží v 64 bitovém systému Windows, cesty registru se budou lišit od dříve uvedených.If the app you're running is 32-bit and running in 64-bit Windows, the registry paths will be different than previously listed. 64 registr je k dispozici v HKEY_LOCAL_MACHINE\softwaru\Wow6432Node\ podklíč.The 64-bit registry is available in the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ subkey. Například podklíč registru pro .NET Framework 3,5 je HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\instalaci Microsoft\NET Framework\NDP\v 3.5.For example, the registry subkey for .NET Framework 3.5 is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

Následující příklad vyhledá .NET Framework 1 až 4 verze, které jsou nainstalovány:The following example finds the .NET Framework 1 through 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

Modul CLR .NET Framework nainstalovaný s .NET Framework má samostatnou verzi.The .NET Framework CLR installed with .NET Framework is versioned separately. Existují dva způsoby, jak zjistit verzi .NET Framework CLR:There are two ways to detect the version of the .NET Framework CLR:

  • Nástroj Clrver. exeThe Clrver.exe tool

    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. Otevřete Developer Command Prompt pro Visual Studio a zadejte clrver.Open the Developer Command Prompt for Visual Studio and enter clrver.

    Ukázkový výstup:Sample output:

    Versions installed on the machine:
    v2.0.50727
    v4.0.30319
    
  • Třída EnvironmentThe 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 .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 tématu detekce .NET Framework 4,5 a novějších verzí.Instead, query the registry as described in Detect .NET Framework 4.5 and later versions.

    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.

      Pro .NET Framework verze 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 .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 .NET Framework 4.6 and later versions, it has the form 4.0.30319.42000.

    2. Jakmile budete mít objekt verze , 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.

      • Pro dílčí identifikátor vydání (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 celý řetězec 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