Как мне найти версию .NET?


258

Как узнать, какая версия .NET установлена?

Я ищу что-то такое же простое, как "java -version", которое я могу набрать в командной строке, и это говорит мне о текущей установленной версии.

Я лучше добавлю, что Visual Studio может быть не установлен - это то, что я хочу знать о клиентском компьютере.


2
Перейдите к запуску и выполните эту команду: wmic / namespace: \\ root \ cimv2 path win32_product где "name like '%%. NET %%'" получить версию
HENG Vongkol


Ответы:


250

Просто введите любую из приведенных ниже команд, чтобы получить последнюю версию в первой строке.

1. CSC
2. GACUTIL /l ?
3. CLRVER

Вы можете запустить их только из командной строки Visual Studio, если у вас установлена ​​Visual Studio, или же, если у вас есть .NET Framework SDK, тогда командная строка SDK.

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Последняя команда (5) выведет список всех версий (кроме 4.5) установленного .NET, начиная с последней .
Вам нужно запустить 4-ю команду, чтобы увидеть, установлен ли .NET 4.5.

Еще три параметра из командной строки PowerShell приведены ниже.

6.   [environment]::Version
7.   $PSVersionTable.CLRVersion
8.   gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
     where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release

Последняя команда (8) предоставит вам все версии, включая .NET 4.5.


6
«CSC» будет работать только из командной строки Visual Studio (по умолчанию). Он также даст вам только максимальную версию .NET Framework, на которую ориентирована версия компилятора. - Если у вас установлены VS2005 и VS2008, разные версии CSC сообщат о разных версиях.
Мэтт Лэйси,

15
cscвыводит версию компилятора C #, а не версию .NET Framework.
Тимви

4
Последняя команда не вернула версию 4.5, хотя я думаю, что она установлена. Ответ на stackoverflow.com/questions/3487265/… включил его.
lmsurprenant

2
Последняя команда не показывает последнюю версию. Мы можем посмотреть версию в appwiz.cpl или команда 'wmic product' также полезна. windows-commandline.com/find-net-version-on-your-computer
Гири

11
Приветствия для номера 8!
Лионет Чен

330

Существует более простой способ получить точную версию .NET-версию, установленную на вашем компьютере, из командной строки. Просто следуйте следующим инструкциям;

  1. Откройте командную строку (например, Windows + R → введите «cmd»).
  2. Введите следующую команду, все в одной строке:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(Это перечислит все версии .NET.)

  1. Если вы хотите проверить последнюю версию .NET 4.
  2. Введите следующую инструкцию в одну строку:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

Пожалуйста, найдите прикрепленное изображение ниже, чтобы увидеть, как оно показано.

Введите описание изображения здесь


4
обнаружил, что это самый простой и точный (с «* \ v4 \ Full» в конце), поскольку он также получает младшую версию с помощью одной простой команды.
Игнас Вишня

1
Ницца. Требуется что-то, что будет работать на ПК пользователя, и это все. Спасибо!
Келли

Полная информация и примеры: docs.microsoft.com/en-us/dotnet/framework/migration-guide/…
typpo

6
Хорошо, но не показывает платформы 4.5, 4.6 и 4.7, которые установлены на моем компьютере с Windows 7 :(
Zeek2

не совсем точно; Я просматриваю Панель управления> Программы и компоненты, и нет никаких признаков .NET .; однако я запускаю вашу команду, и она выдает мне HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Возможно, .NET когда-то был установлен на моей машине, был удален, но реестр не был очищен
вентилятор Ньютона 01


30

Прежде чем перейти к командной строке, выполните следующие действия ...

Откройте « Мой компьютер» → дважды щелкните диск « C: » → дважды щелкните « Windows » → дважды щелкните « Microsoft.NET » → дважды щелкните « Framework » → Внутри этой папки будут находиться папки, например «v1.0.3705», и / или "v2.0.50727" и / или "v3.5" и / или "v4.0.30319".

Ваша последняя версия .NET будет в папке с наибольшим номером v, поэтому, если доступна версия v4.0.30319, которая будет содержать вашу последнюю платформу .NET. Однако v4.0.30319 не означает, что у вас есть .NET Framework версии 4.0. V4.0.30319 - это версия компилятора Visual C #, поэтому, чтобы найти версию платформы .NET, сделайте следующее.

Перейдите в командную строку и следуйте по этому пути:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (или любая другая папка с наибольшим номером v)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

Вывод:

Компилятор Microsoft (R) Visual C # версии 4.0.30319.17929 для Microsoft (R) .NET Framework 4.5 Авторские права (C) Корпорация Майкрософт. Все права защищены.

Пример ниже:

Введите описание изображения здесь


2
Неплохо, но на моем сервере вывод отличается, по крайней мере, сообщение «для» не было включено: lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALQ/…
Nenotlep

2
изменить тип каталога : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319а затем тип csc.exe, надеюсь, кому-то поможет.
Shaijut

1
Это наиболее эффективно, когда вы вошли в систему с ограниченной учетной записью пользователя.
Rzassar

10

Этот ответ применим только к .NET Core!

При вводе текста dotnet --versionв выбранном вами терминале будет распечатана используемая версия .NET Core SDK.

Узнайте больше о dotnetкоманде здесь .


15
Это применимо только к .NET Core.
Сунил

9

Для версии установленной платформы она зависит от того, какие пакеты обновления и исправления вы установили. Взгляните на эту страницу MSDN для более подробной информации. Он предлагает поискать %systemroot%\Microsoft.NET\Frameworkверсию.

Environment.Version программно предоставит вам версию CLR.

Обратите внимание, что это версия CLR, и она не обязательно совпадает с последней версией установленной вами платформы (в обеих версиях .NET 3.0 и 3.5 используется версия 2 CLR).


Environment.Version, кажется, дает вам версию приложения. Скажем, из LinqPad я хочу найти версию .NET, с которой он работает, и дает мне не версию .NET, а версию LinqPad
Naomi

@Naomi: нет, это дает версию CLR. Из документов: «Получает объект Version, который описывает основные, вспомогательные номера, номера сборки и редакции общеязыковой среды выполнения». ,
adrianbanks

Что я должен увидеть в этом объекте? Я вижу 2.0.50727.5472 2 Minor 0 Build 50727 Revision 5472 MajorRevision 0 MinorRevision 5472, который не похож на CLR-версию для меня
Наоми

Я загрузил последнюю версию LinqPad, и теперь я получаю 4.0.30319.18052 для этой версии. Предыдущая версия была нацелена на версию .NET 3.5. Итак, я все еще немного сбит с толку - действительно ли он показывает версию CLR?
Наоми

1
@ Наоми: Да, он показывает версию CLR. 2.0.50727.5472 - это версия .Net 2.0 CLR, которая также используется для .Net 3.0 и 3.5. 4.0.30319.18052 - это .Net 4.0, который имеет другой номер версии.
adrianbanks

8

MSDN очень подробно рассказывает здесь о том, как проверить это из реестра:

Чтобы найти версии .NET Framework, просмотрите реестр (.NET Framework 1-4)

  1. В меню «Пуск» выберите «Выполнить».
  2. В поле Открыть введите regedit.exe. У вас должны быть учетные данные администратора для запуска regedit.exe.
  3. В редакторе реестра откройте следующий подраздел:

    HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ NET Framework Setup \ NDP

Установленные версии перечислены в подразделе NDP. Номер версии хранится в записи версии. Для .NET Framework 4 запись Version находится в подразделе Client или Full (в разделе NDP) или в обоих подразделах.

Чтобы найти версии .NET Framework, просмотрите реестр (.NET Framework 4.5 и более поздние версии)

  1. В меню «Пуск» выберите «Выполнить».
  2. В поле Открыть введите regedit.exe. У вас должны быть учетные данные администратора для запуска regedit.exe.
  3. В редакторе реестра откройте следующий подраздел:

    HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full

Обратите внимание, что путь к полному подразделу включает в себя подключ Net Framework, а не .NET Framework

Проверьте значение DWORD с именем Release. Наличие версии DWORD указывает на то, что на этом компьютере была установлена ​​.NET Framework 4.5 или более поздняя версия.

введите описание изображения здесь

Примечание . Последняя строка в приведенном выше снимке, которая была обрезана, выглядит следующим образом On all other OS versions: 461310. Я старался изо всех сил, чтобы избежать получения информации при съемке скриншота, но таблица была слишком большой.


6

Если вы откроете командную строку и введете следующие две команды, будут перечислены все версии платформы, установленные на текущем компьютере (каждая из них хранится в отдельном каталоге в этом каталоге).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

8
Не рекомендуется, потому что это может ввести в заблуждение. Если вы обновили 4.0 => 4.5.2, каталог может показывать только v4.0.30319. См. Пример Санимал Калуараччи.
Дина

6

Просто введите следующее в командной строке:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Ваша версия dotnet будет показана как наибольшее число.


1
Он отображает все версии до 4.0, но не 4.5.
Pinowthebird

4

Чтобы просто получить установленные версии в командной строке, я рекомендую использовать net-version .

  • Это просто один двоичный файл .
  • Он использует рекомендации, предоставленные моим Microsoft для получения информации о версии.
  • Он не требует установки SDK.
  • Или командная строка Visual Studio.
  • Вам не нужно использовать regedit и выслеживать ключи реестра самостоятельно. Вы даже можете передать вывод в инструмент командной строки, если вам нужно.

Исходный код доступен на github.com

Полное раскрытие: я создал этот инструмент сам из разочарования.


Если этот (неполный) набор информации о версии достаточно хорош для вас, вам предоставляется больше возможностей.
Дэн Эспарза

@Shiva Вы указываете, что вы думаете, что команда показывает все, и я с уважением не согласен с вами. Пожалуйста, посмотрите на ссылку с инструкциями, предоставленными Microsoft. Например: Ваш запрос не показывает, что у меня установлена ​​.NET 4.6.1. Кроме того, это означает, что у меня установлен «CDF», который не является версией .NET Framework.
Дэн Эспарза

4

Если вы делаете это довольно часто (как я обычно), вы можете создать ярлык на рабочем столе следующим образом:

  1. Щелкните правой кнопкой мыши на рабочем столе и выберите « Создать» → « Ярлык». .
  2. В поле местоположения вставьте эту строку: powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"(это из поста Биной ​​Антони ).
  3. Нажмите Далее . Дайте ярлыку имя и Готово .

(ПРИМЕЧАНИЕ: я не уверен, что это работает для 4.5, но я могу подтвердить, что это работает для 4.6 и версий до 4.5.)


Версии 1.0 и 1.1 не отображаются в ключе установки NET Framework , хотя существуют в папке% systemroot% \ Microsoft.NET \ Framework \.
Самис

4

Вот сценарий Power Shell, который я использовал, взяв ссылку на:

https://stackoverflow.com/a/3495491/148657

$Lookup = @{
    378389 = [version]'4.5'
    378675 = [version]'4.5.1'
    378758 = [version]'4.5.1'
    379893 = [version]'4.5.2'
    393295 = [version]'4.6'
    393297 = [version]'4.6'
    394254 = [version]'4.6.1'
    394271 = [version]'4.6.1'
    394802 = [version]'4.6.2'
    394806 = [version]'4.6.2'
    460798 = [version]'4.7'
    460805 = [version]'4.7'
    461308 = [version]'4.7.1'
    461310 = [version]'4.7.1'
    461808 = [version]'4.7.2'
    461814 = [version]'4.7.2'
    528040 = [version]'4.8'
    528049 = [version]'4.8'
}

# For One True framework (latest .NET 4x), change the Where-Oject match 
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -name Version, Release -EA 0 |
  Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
  Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}}, 
@{name = "Product"; expression = {$Lookup[$_.Release]}}, 
Version, Release

Приведенный выше скрипт использует реестр и дает нам номер обновления Windows вместе с .Net Framework, установленным на компьютере.

Ссылка: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- запрашивая-в-реестр-в-коды внутрисетевого-каркасный 45-и-потом

Вот результаты для того же самого при запуске того сценария на двух разных машинах

  1. Где .NET 4.7.2 уже был установлен:

введите описание изображения здесь

  1. Где не был установлен .NET 4.7.2:

введите описание изображения здесь


3

Боже мой, так много беспорядка, чтобы найти версию установленного .net framework?

Windows> Поиск> Установщик Visual Studio> для установки версии VS нажмите «Дополнительно»> «Изменить»> «Отдельные компоненты» и просмотрите ее там:

введите описание изображения здесь



1

clrverотличный. Просто выполните его в приглашении .NET, и он перечислит все доступные версии фреймворка.


3
Для этого инструмента требуется установить не только .NET Framework, но и Visual Studio. ОП указывает, что Visual Studio может быть не установлен.
Дэн Эспарза

И это не показывает все (или даже большинство) версий. Для моего ПК с Win7 это показывает только V2.0 и 4.0, но некоторые другие методы выше также показывают версии: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 и 4.7.
Zeek2

1
@Zeek clrverпоказывает установленные .net среды выполнения , которые могут быть разделены между .net версиями . См. Как: определить, какие версии .NET Framework установлены, и определить версию .NET, на которой вы работаете (2.0, 4.5, 4.5.1 или 4.5.2)
Самис

1

Для всех, кто работает под управлением Windows 10 1607 и ищет .net 4.7 . Не обращайте внимания на все вышеперечисленное.

Его нет в реестре , в папке C: \ Windows \ Microsoft.NET или в установленных программах списке или на экране WMIC того же списка.

Ищите «установленные обновления» KB3186568.


1
Это в реестре, как документально подтверждено Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- Releaseзначение будет 460798для 4,7 на W10 1607.
Ричард

Это не. «Полный» ключ даже не существует.
skrie

1
Это так и есть. Я бегу 1607, и я сейчас смотрю на Fullключ!
Ричард


0

Если вы разрабатываете какое-либо приложение .Net (например, веб-приложение), вы можете сделать 1 строку кода ошибки (например, вызвать неправильное имя функции) и перезагрузить страницу, будет показана версия .Net.введите описание изображения здесь


Вероятно, не самый чистый способ, но действительно вариант, о котором я полностью забыл. Простой GACUTIL /l ?в вашем (разработчике) PowerShell дает то же самое.
B - Риан

-1

Существует более простой способ получить точную версию .NET-версию, установленную на вашем компьютере, из командной строки. Просто следуйте следующим инструкциям;

Откройте командную строку (т. Е. Windows + R → введите «cmd») и введите следующую команду, все в одной строке:% windir% \ Microsoft.NET \ FrameWork, а затем перейдите в каталог с номером последней версии.

См. Http://dotnettec.com/check-dot-net-framework-version/


Я получаю эту ошибку, пытаясь следовать вашему ответу:'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.