Практическое руководство. Определение установленных версий платформы .NET FrameworkHow to: Determine which .NET Framework versions are installed

На компьютере можно установить и запустить несколько версий платформы .NET Framework.Users can install and run multiple versions of the .NET Framework on their computers. При разработке или развертывании приложения могут потребоваться сведения о том, какие версии .NET Framework установлены на компьютере пользователя.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 состоит из основных компонентов, версии которым присваиваются отдельно:Note that the .NET Framework consists of two main components, which are versioned separately:

  • набор сборок, которые являются коллекциями типов и ресурсов, обеспечивающих функции приложенийA set of assemblies, which are collections of types and resources that provide the functionality for your apps. (.NET Framework и сборкам назначается один номер версии);The .NET Framework and assemblies share the same version number.

  • среда CLR, которая выполняет код приложения и управляет им.The common language runtime (CLR), which manages and executes your app's code. CLR имеет собственный номер версии (см. раздел Версии и зависимости .NET Framework).The CLR is identified by its own version number (see Versions and Dependencies).

Чтобы получить точный список версий .NET Framework, установленных на компьютере, можно просмотреть реестр или отправить запрос в реестр с помощью кода:To get an accurate list of the .NET Framework versions installed on a computer, you can view the registry or query the registry in code:

Просмотр реестра (версии 1–4)Viewing the registry (versions 1-4)
Просмотр реестра (версия 4.5 и более поздние)Viewing the registry (version 4.5 and later)
Использование кода для отправки запроса в реестр (версии 1–4)Using code to query the registry (versions 1-4)
Использование кода для отправки запроса в реестр (версия 4.5 и более поздние)Using code to query the registry (version 4.5 and later)
Использование PowerShell для отправки запроса в реестр (версия 4.5 и более поздние)Using PowerShell to query the registry (version 4.5 and later)

Чтобы узнать версию среды CLR, можно использовать специальное средство или код:To find the CLR version, you can use a tool or code:

Использование средства ClrverUsing the Clrver tool
Использование кода для отправки запроса в класс System.EnvironmentUsing code to query the System.Environment class

Сведения об обнаружении установленных обновлений для каждой версии платформы .NET Framework см. в разделе Практическое руководство. Определение установленных платформ .NET Framework.For information about detecting the installed updates for each version of the .NET Framework, see How to: Determine Which .NET Framework Updates Are Installed. Сведения об установке .NET Framework см. в разделе Установка .NET Framework для разработчиков.For information about installing the .NET Framework, see Install the .NET Framework for developers.

Поиск версий .NET Framework путем просмотра реестра (.NET Framework 1–4)To find .NET Framework versions by viewing the registry (.NET Framework 1-4)

  1. В меню Пуск выберите Выполнить.On the Start menu, choose Run.

  2. В поле Открыть введите regedit.exe.In the Open box, enter regedit.exe.

    Для запуска regedit.exe необходимы учетные данные администратора.You must have administrative credentials to run regedit.exe.

  3. В редакторе реестра откройте следующий подраздел:In the Registry Editor, open the following subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

    Установленные версии перечислены в подразделе NDP.The installed versions are listed under the NDP subkey. Номер версии хранится в записи Version.The version number is stored in the Version entry. Для .NET Framework 4.NET Framework 4 запись Version находится в подразделе Client или Full (внутри подраздела NDP) либо в обоих подразделах.For the .NET Framework 4.NET Framework 4 the Version entry is under the Client or Full subkey (under NDP), or under both subkeys.

    Примечание

    Папка NET Framework Setup в реестре не начинается с точки.The "NET Framework Setup" folder in the registry does not begin with a period.

Поиск версий .NET Framework путем просмотра реестра (.NET Framework 4.5 и более поздних версий)To find .NET Framework versions by viewing the registry (.NET Framework 4.5 and later)

  1. В меню Пуск выберите Выполнить.On the Start menu, choose Run.

  2. В поле Открыть введите regedit.exe.In the Open box, enter regedit.exe.

    Для запуска regedit.exe необходимы учетные данные администратора.You must have administrative credentials to run regedit.exe.

  3. В редакторе реестра откройте следующий подраздел:In the Registry Editor, open the following subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

    Обратите внимание, что путь к подразделу Full включает подраздел Net Framework вместо .NET Framework.Note that the path to the Full subkey includes the subkey Net Framework rather than .NET Framework.

    Примечание

    Если подраздел Full отсутствует, платформа .NET Framework 4.5 или более поздней версии не установлена.If the Full subkey is not present, then you do not have the .NET Framework 4.5 or later installed.

    Проверьте значение DWORD с именем Release.Check for a DWORD value named Release. Наличие DWORD Release указывает, что на компьютере установлена .NET Framework 4.5.NET Framework 4.5 или более новая версия.The existence of the Release DWORD indicates that the .NET Framework 4.5.NET Framework 4.5 or newer has been installed on that computer.

    Запись реестра для .NET Framework 4.5.The registry entry for the .NET Framework 4.5.

    Значение DWORD Release показывает, какая версия .NET Framework установлена.The value of the Release DWORD indicates which version of the .NET Framework is installed.

    Важно!

    В следующей таблице перечислены ключи только для выпущенных версий платформы .NET Framework.The following table lists the keys of released versions of the .NET Framework only. В ней не приводятся ключи предварительных версий или выпусков.It doesn't list the keys of preview or pre-release versions.

    Значение DWORD "Release"Value of the Release DWORD ВерсияVersion
    378389378389 .NET Framework 4,5.NET Framework 4.5
    378675378675 Платформа .NET Framework 4.5.1, установленная с Windows 8.1 или Windows Server 2012 R2.NET Framework 4.5.1 installed with Windows 8.1 or Windows Server 2012 R2
    378758378758 Платформа .NET Framework 4.5.1, установленная в Windows 8, Windows 7 с пакетом обновления 1 (SP1) или Windows Vista с пакетом обновления 2 (SP2).NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1, or Windows Vista SP2
    379893379893 .NET Framework 4.5.2.NET Framework 4.5.2
    Только в системах Windows 10: 393295On Windows 10 systems only: 393295

    Во всех других версиях ОС: 393297On all other OS versions: 393297
    .NET Framework 4.6.NET Framework 4.6
    Только в системах Windows 10 с ноябрьским обновлением: 394254On Windows 10 November Update systems only: 394254

    Во всех других версиях ОС: 394271On all other OS versions: 394271
    .NET Framework 4.6.1.NET Framework 4.6.1
    В юбилейном обновлении Windows 10 и Windows Server 2016: 394802On Windows 10 Anniversary Update and Windows Server 2016: 394802

    Во всех других версиях ОС: 394806On all other OS versions: 394806
    .NET Framework 4.6.2.NET Framework 4.6.2
    Только в обновлении Windows 10 Creators Update: 460798On Windows 10 Creators Update only: 460798

    Во всех других версиях ОС: 460805On all other OS versions: 460805
    .NET Framework 4.7.NET Framework 4.7
    Только в Windows 10 Fall Creators Update: 461308On Windows 10 Fall Creators Update only: 461308

    Во всех других версиях ОС: 461310On all other OS versions: 461310
    .NET Framework 4.7.1.NET Framework 4.7.1
    Только в обновлении Windows 10 за апрель 2018: 461808On Windows 10 April 2018 Update only: 461808

    Во всех других версиях ОС: 461814On all other OS versions: 461814
    .NET Framework 4.7.2.NET Framework 4.7.2

Поиск версий .NET Framework путем отправки запроса в реестр (.NET Framework 1–4)To find .NET Framework versions by querying the registry in code (.NET Framework 1-4)

  • Используйте класс Microsoft.Win32.RegistryKey для доступа к подразделу Software\Microsoft\NET Framework Setup\NDP\ в разделе HKEY_LOCAL_MACHINE в реестре Windows.Use the Microsoft.Win32.RegistryKey class to access the Software\Microsoft\NET Framework Setup\NDP\ subkey under HKEY_LOCAL_MACHINE in the Windows registry.

    В следующем коде показан пример этого запроса.The following code shows an example of this query.

    Примечание

    В этом коде не показано, как обнаружить платформу .NET Framework 4.5.NET Framework 4.5 или более поздней версии.This code does not show how to detect the .NET Framework 4.5.NET Framework 4.5 or later. Для обнаружения этих версий проверьте DWORD Release, как описано в предыдущем разделе.Check the Release DWORD to detect those versions, as described in the previous section. Для кода, обнаруживающего .NET Framework 4.5.NET Framework 4.5 или более поздние версии, см. следующий раздел в данной статье.For code that does detect the .NET Framework 4.5.NET Framework 4.5 or later versions, see the next section in this article.

    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.OpenRemoteBaseKey(RegistryHive.LocalMachine, "").
                    OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
                {
                    // As an alternative, if you know the computers you will query are running .NET Framework 4.5 
                    // or later, you can use:
                    // using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, 
                    // RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
                foreach (string versionKeyName in ndpKey.GetSubKeyNames())
                {
                    if (versionKeyName.StartsWith("v"))
                    {
    
                        RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
                        string name = (string)versionKey.GetValue("Version", "");
                        string sp = versionKey.GetValue("SP", "").ToString();
                        string install = versionKey.GetValue("Install", "").ToString();
                        if (install == "") //no install info, must be later.
                            Console.WriteLine(versionKeyName + "  " + name);
                        else
                        {
                            if (sp != "" && install == "1")
                            {
                                Console.WriteLine(versionKeyName + "  " + name + "  SP" + sp);
                            }
    
                        }
                        if (name != "")
                        {
                            continue;
                        }
                        foreach (string subKeyName in versionKey.GetSubKeyNames())
                        {
                            RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
                            name = (string)subKey.GetValue("Version", "");
                            if (name != "")
                                sp = subKey.GetValue("SP", "").ToString();
                            install = subKey.GetValue("Install", "").ToString();
                            if (install == "") //no install info, must be later.
                                Console.WriteLine(versionKeyName + "  " + name);
                            else
                            {
                                if (sp != "" && install == "1")
                                {
                                    Console.WriteLine("  " + subKeyName + "  " + name + "  SP" + sp);
                                }
                                else if (install == "1")
                                {
                                    Console.WriteLine("  " + subKeyName + "  " + name);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    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.OpenRemoteBaseKey(RegistryHive.LocalMachine, ""). _
                OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\")
                ' As an alternative, if you know the computers you will query are running .NET Framework 4.5 
                ' or later, you can use:
    
                ' As an alternative, if you know the computers you will query are running .NET Framework 4.5 
                ' or later, you can use:
                '  Using ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,  _
                '  RegistryView.Registry32).OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\")
    
                For Each versionKeyName As String In ndpKey.GetSubKeyNames()
                    If versionKeyName.StartsWith("v") Then
                        Dim versionKey As RegistryKey = ndpKey.OpenSubKey(versionKeyName)
                        Dim name As String = DirectCast(versionKey.GetValue("Version", ""), String)
                        Dim sp As String = versionKey.GetValue("SP", "").ToString()
                        Dim install As String = versionKey.GetValue("Install", "").ToString()
                        If install = "" Then
                            'no install info, ust be later
                            Console.WriteLine(versionKeyName & "  " & name)
                        Else
                            If sp <> "" AndAlso install = "1" Then
                                Console.WriteLine(versionKeyName & "  " & name & "  SP" & sp)
    
                            End If
                        End If
                        If name <> "" Then
                            Continue For
                        End If
                        For Each subKeyName As String In versionKey.GetSubKeyNames()
                            Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName)
                            name = DirectCast(subKey.GetValue("Version", ""), String)
                            If name <> "" Then
                                sp = subKey.GetValue("SP", "").ToString()
                            End If
                            install = subKey.GetValue("Install", "").ToString()
                            If install = "" Then
                                'no install info, ust be later
                                Console.WriteLine(versionKeyName & "  " & name)
                            Else
                                If 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 produces output that's similar to the following:

    v2.0.50727  2.0.50727.4016  SP2
    v3.0  3.0.30729.4037  SP2
    v3.5  3.5.30729.01  SP1
    v4
      Client  4.0.30319
      Full  4.0.30319
    

Поиск версий .NET Framework путем отправки запроса в реестр (.NET Framework 4.5 и более поздних версий)To find .NET Framework versions by querying the registry in code (.NET Framework 4.5 and later)

  1. Наличие значения DWORD Release указывает, что на компьютере установлена платформа .NET Framework 4.5 или более поздней версии.The existence of the Release DWORD indicates that the .NET Framework 4.5 or later has been installed on a computer. Значение ключевого слова указывает на установленную версию.The value of the keyword indicates the installed version. Чтобы проверить это ключевое слово, используйте методы OpenBaseKey и OpenSubKey класса Microsoft.Win32.RegistryKey для доступа к подразделу Software\Microsoft\NET Framework Setup\NDP\v4\Full в разделе HKEY_LOCAL_MACHINE реестра Windows.To check this keyword, use the OpenBaseKey and OpenSubKey methods of the Microsoft.Win32.RegistryKey class to access the Software\Microsoft\NET Framework Setup\NDP\v4\Full subkey under HKEY_LOCAL_MACHINE in the Windows registry.

  2. Проверьте значение ключевого слова Release, чтобы определить установленную версию.Check the value of the Release keyword to determine the installed version. Для обеспечения совместимости с последующими версиями значение должно быть больше или равно значениям, указанным в таблице.To be forward-compatible, you can check for a value greater than or equal to the values listed in the table. Ниже приведен список версий .NET Framework и соответствующих ключевых слов Release.Here are the .NET Framework versions and associated Release keywords.

    Важно!

    В следующей таблице перечислены ключи только для выпущенных версий платформы .NET Framework.The following table lists the keys of released versions of the .NET Framework only. В ней не приводятся ключи предварительных версий или выпусков.It doesn't list the keys of preview or pre-release versions.

    ВерсияVersion Значение DWORD "Release"Value of the Release DWORD
    .NET Framework 4,5.NET Framework 4.5 378389378389
    Платформа .NET Framework 4.5.1, установленная с Windows 8.1.NET Framework 4.5.1 installed with Windows 8.1 378675378675
    Платформа .NET Framework 4.5.1, установленная в Windows 8, Windows 7 с пакетом обновления 1 (SP1) или Windows Vista с пакетом обновления 2 (SP2).NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1, or Windows Vista SP2 378758378758
    .NET Framework 4.5.2.NET Framework 4.5.2 379893379893
    Платформа .NET Framework 4.6, установленная с Windows 10.NET Framework 4.6 installed with Windows 10 393295393295
    Платформа .NET Framework 4.6, установленная во всех остальных версиях ОС Windows.NET Framework 4.6 installed on all other Windows OS versions 393297393297
    Платформа .NET Framework 4.6.1, установленная в Windows 10.NET Framework 4.6.1 installed on Windows 10 394254394254
    Платформа .NET Framework 4.6.1, установленная во всех остальных версиях ОС Windows.NET Framework 4.6.1 installed on all other Windows OS versions 394271394271
    Платформа .NET Framework 4.6.2, установленная в юбилейном обновлении Windows 10 и Windows Server 2016.NET Framework 4.6.2 installed on Windows 10 Anniversary Update and Windows Server 2016 394802394802
    Платформа .NET Framework 4.6.2, установленная во всех остальных версиях ОС Windows.NET Framework 4.6.2 installed on all other Windows OS versions 394806394806
    .NET Framework 4.7 установлена в обновлении Windows 10 Creators Update.NET Framework 4.7 installed on Windows 10 Creators Update 460798460798
    Платформа .NET Framework 4.7, установленная во всех остальных версиях ОС Windows.NET Framework 4.7 installed on all other Windows OS versions 460805460805
    Платформа .NET Framework 4.7.1 установлена в обновлении Windows 10 Creators Update.NET Framework 4.7.1 installed on Windows 10 Fall Creators Update 461308461308
    Платформа .NET Framework 4.7.1, установленная во всех остальных версиях ОС Windows.NET Framework 4.7.1 installed on all other Windows OS versions 461310461310
    Платформа .NET Framework 4.7.2, установленная в Windows 10 с обновлением за апрель 2018 г..NET Framework 4.7.2 installed on Windows 10 April 2018 Update 461808461808
    Платформа .NET Framework 4.7.2, установленная во всех остальных версиях ОС Windows.NET Framework 4.7.2 installed on all other Windows OS versions 461814461814

    В следующем примере проверяется значение Release в реестре, чтобы определить, установлена ли .NET Framework 4.5.NET Framework 4.5 или более поздняя версия .NET Framework.The following example checks the Release value in the registry to determine whether the .NET Framework 4.5.NET Framework 4.5 or a later version of the .NET Framework is installed.

    using System;
    using Microsoft.Win32;
    
    public class GetDotNetVersion
    {
       public static void Main()
       {
          GetDotNetVersion.Get45PlusFromRegistry();
       }
    
       private static void Get45PlusFromRegistry()
       {
          const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
    
       	using (RegistryKey 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 >= will enable forward compatibility.
       private static string CheckFor45PlusVersion(int releaseKey)
       {
          if (releaseKey >= 461808)
             return "4.7.2 or later";
          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 >= 461308 Then
             Return "4.7.1 or later"
          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
    
    

    В этом примере применяются рекомендации для проверки версии:This example follows the recommended practice for version checking:

    • Проверяется, имеет ли запись Release значение, большее или равное значению известных разделов выпуска.It checks whether the value of the Release entry is greater than or equal to the value of the known release keys.

    • Проверка выполняется с самой последней до самой ранней версии.It checks in order from most recent version to earliest version.

Проверка минимальной необходимой версии .NET Framework путем запроса к реестру в PowerShell (.NET Framework 4.5 и более поздние версии)To check for a minimum-required .NET Framework version by querying the registry in PowerShell (.NET Framework 4.5 and later)

  • В приведенном ниже примере проверяется значение ключевого слова Release для определения того, установлена ли версия .NET Framework 4.6.2 или более поздняя, вне зависимости от версии Windows (если да, возвращается значение True; в противном случае возвращается значение False).The following example checks the value of the Release keyword to determine whether .NET Framework 4.6.2 or higher is installed, regardless of Windows OS version (returning True if it is and False otherwise).

    Get-ChildItem "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\" | Get-ItemPropertyValue -Name Release | ForEach-Object { $_ -ge 394802 } 
    

    Значение 394802 в предыдущем примере можно заменить на другое значение из приведенной ниже таблицы для проверки наличия другой версии .NET Framework.You can replace 394802 in the previous example with another value from the following table to check for a different minimum-required .NET Framework version.

    ВерсияVersion Минимальное значение DWORD "Release"Minimum value of the Release DWORD
    .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
    .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

Поиск текущей версии среды выполнения с помощью средства ClrverTo find the current runtime version by using the Clrver tool

  • Для определения версий среды CLR, установленных на компьютере, можно использовать инструмент CLR Version (Clrver.exe).Use the CLR Version Tool (Clrver.exe) to determine which versions of the common language runtime are installed on a computer.

    В командной строке Visual Studio введите clrver.From a Visual Studio Command Prompt, enter clrver. Выходные данные этой команды выглядят примерно следующим образом:This command produces output similar to the following:

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

    Дополнительные сведения об использовании этого инструмента см. в разделе Clrver.exe (CLR Version Tool).For more information about using this tool, see Clrver.exe (CLR Version Tool).

Поиск текущей версии среды выполнения путем запроса класса Environment в кодеTo find the current runtime version by querying the Environment class in code

  • Запросите извлекаемое свойство Environment.Version, чтобы получить объект Version, определяющий версию среды выполнения, в которой в данный момент выполняется код.Query the Environment.Version property to retrieve a Version object that identifies the version of the runtime that is currently executing the code. Можно использовать свойство Version.Major, чтобы получить идентификатор основного выпуска (например, "4" в случае версии 4,0), свойство Version.Minor, чтобы получить идентификатор дополнительного номера версии (например, "0" в случае версии 4,0), либо метод Object.ToString, чтобы получить всю строку версии (например, "4.0.30319.18010", как показано в следующем коде).You can use the Version.Major property to get the major release identifier (for example, "4" for version 4.0), the Version.Minor property to get the minor release identifier (for example, "0" for version 4.0), or the Object.ToString method to get the entire version string (for example, "4.0.30319.18010", as shown in the following code). Это свойство возвращает одно значение, отражающее версию среды выполнения, в которой в данный момент выполняется код; оно не возвращает версии сборок или другие версии среды выполнения, которые могут быть установлены на компьютере.This property returns a single value that reflects the version of the runtime that is currently executing the code; it does not return assembly versions or other versions of the runtime that may have been installed on the computer.

    Для платформы .NET Framework версий 4, 4.5, 4.5.1 и 4.5.2 свойство Environment.Version возвращает объект Version, строковое представление которого имеет форму 4.0.30319.xxxxx.For the .NET Framework Versions 4, 4.5, 4.5.1, and 4.5.2, the Environment.Version property returns a Version object whose string representation has the form 4.0.30319.xxxxx. Для .NET Framework 4.6 и более поздних версий оно имеет форму 4.0.30319.42000.For the .NET Framework 4.6 and later, it has the form 4.0.30319.42000.

    Важно!

    Для .NET Framework 4.5.NET Framework 4.5 и более поздней версии не рекомендуется использовать свойство Environment.Version для определения версии среды выполнения.For the .NET Framework 4.5.NET Framework 4.5 and later, we do not recommend using the Environment.Version property to detect the version of the runtime. Вместо этого рекомендуется отправить запрос в реестр, как описано в разделе Поиск версий .NET Framework путем отправки запроса в реестр (.NET Framework 4.5 и более поздних версий) выше в этой статье.Instead, we recommend that you query the registry, as described in the To find .NET Framework versions by querying the registry in code (.NET Framework 4.5 and later) section earlier in this article.

    Ниже приведен пример запроса свойства Environment.Version для получения сведений о версии среды выполнения:Here's an example of querying the Environment.Version property for runtime version information:

    using System;
    
    public class VersionTest
    {
        public static void Main()
        {
            Console.WriteLine($"Version: {Environment.Version}");
        }
    }
    
    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 produces output that's similar to the following:

    Version: 4.0.30319.18010
    

См. такжеSee also

Практическое руководство. Определение установленных обновлений платформы .NET FrameworkHow to: Determine Which .NET Framework Updates Are Installed
Установка .NET Framework для разработчиковInstall the .NET Framework for developers
Версии и зависимостиVersions and Dependencies