Как определить, какие версии и пакеты обновлений .NET Framework установлены?


Answers

Существует официальный ответ Microsoft на этот вопрос в следующей статье базы знаний:

Код статьи: 318785 - Последнее изменение :: 7 ноября 2008 г. - Редакция: 20.1 Как определить, какие версии .NET Framework установлены и были ли применены пакеты обновления

К сожалению, он не работает, потому что версия mscorlib.dll в каталоге 2.0 имеет версию 2.0, и нет версии mscorlib.dll в каталогах 3.0 или 3.5, хотя 3.5 SP1 установлен ... почему был бы так дезинформирован официальный ответ Microsoft?

Question

Здесь был задан аналогичный вопрос, но он был специфичен для .NET 3.5. В частности, я ищу следующее:

  1. Каков правильный способ определить, какие версии .NET Framework и пакеты обновлений установлены?
  2. Есть ли список ключей реестра, которые можно использовать?
  3. Существуют ли зависимости между версиями Framework?



Перечислите подразделы HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP . Каждый подраздел является версией .NET . Он должен иметь значение Install=1 если оно присутствует на машине, значение SP, которое показывает пакет обновления и значение MSI=1 если оно было установлено с использованием MSI. (.NET 2.0 в Windows Vista не имеет последнего, например, поскольку он является частью ОС.)




FWIW ... вот еще одно решение, которое, по-видимому, широко протестировано в реальном мире (но оно находится в C)




Обновление для .NET 4.5.1

Теперь, когда .NET 4.5.1 доступен, фактическое значение ключа с именем Release в реестре должно быть проверено, а не только его существование. Значение 378758 означает, что установлена ​​.NET Framework 4.5.1. Однако, как описано здесь, это значение составляет 378675 на Windows 8.1.




Мне нужно было выяснить, какая версия .NET Framework у меня на компьютере, и все, что я сделал, это перейти на панель управления и выбрать опцию «Удалить программу». После этого я отсортировал программы по имени и нашел профиль клиента Microsoft .NET Framework 4.




Используя библиотеку Signum.Utilities из SignumFramework (которую вы можете использовать автономно), вы можете получить ее красиво и без обращения к реестру самостоятельно:

AboutTools.FrameworkVersions().ToConsole();
//Writes in my machine:
//v2.0.50727 SP2
//v3.0 SP2
//v3.5 SP1






В Windows 7 (он также должен работать и для Windows 8, но я его не тестировал):

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

Действия в командной строке:

  1. Нажмите «Пуск»
  2. В поле поиска введите «cmd» (без кавычек)
  3. Открыть cmd.exe

В cmd введите эту команду

wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version

Это дает последнюю версию NET Framework.

Можно также попробовать Raymond.cc Utilties для того же самого.