Есть ли способ определить версию .NET Framework из командной строки? - PullRequest
28 голосов
/ 10 февраля 2010

Чтобы устранить неполадки при установке, иногда мне просто нужен быстрый ответ, какая версия .NET установлена.

Есть ли способ определить версию .NET Framework в стандартной системе Windows, кроме просмотра каталогов?

ПРИМЕЧАНИЕ: Это не для машины разработки, просто готовые окна

Следующее работает, но я ищу более простой способ.

dir% WINDIR% \ Microsoft.Net \ Framework \ v *

Directory of C:\Windows\Microsoft.Net\Framework

07/13/2009  07:20 PM    <DIR>          v1.0.3705
07/13/2009  07:20 PM    <DIR>          v1.1.4322
01/20/2010  01:16 PM    <DIR>          v2.0.50727
07/13/2009  09:37 PM    <DIR>          v3.0
01/20/2010  01:02 PM    <DIR>          v3.5
02/10/2010  03:20 AM    <DIR>          v4.0.21006

ОБНОВЛЕНИЕ: не решение, а другой классный каталог, отформатированный в листинг

dir% WINDIR% \ Microsoft.Net \ Framework \ v * / O: -N / B

v4.0.21006
v3.5
v3.0
v2.0.50727
v1.1.4322
v1.0.3705

Ответы [ 7 ]

21 голосов
/ 10 февраля 2010
reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /r

Верхняя запись - последняя установленная версия фреймворка.

Примечание : Это не работает с v1.x платформы.

Обновление : Я пропустил комментарий о том, что вы ищете что-то, чтобы сообщить об этом отцу по телефону. Если это так, то приведенная выше команда, вероятно, не лучший подход для вас. Возможно, было бы лучше просто сказать отцу, чтобы он открыл Windows Explorer и переместил его в каталог .NET Framework, и сказал, что там цифры.

9 голосов
/ 10 февраля 2010

просто откройте командную строку VS2008 и введите clrver

9 голосов
/ 10 февраля 2010

Исходя из вашего обновления, которое указывает, что оно предназначено для того, чтобы пройти через него неопытного опытного пользователя, я предлагаю перейти на сайт Скотта Хансельмана http://www.smallestdotnet.com (используйте Internet Explorer), который использует строку агента пользователя, чтобы сообщить вам какой .NET Framework у вас есть, и дает вам рекомендации по наиболее эффективному переходу на последнюю версию.

Старый ответ
С PowerShell вы можете сделать это (хотя наличие PowerShell уже подразумевает как минимум .NET 2.0)

Get-ChildItem "$($Env:WinDir)\Microsoft.Net\Framework" -i mscorlib.dll -r |
    ForEach-Object { $_.VersionInfo.ProductVersion }

Я не знаю, есть ли сопоставимый способ получения информации о версии в простом старом crusty cmd.exe.

0 голосов
/ 16 февраля 2010

Следующее определит, установлен ли .net framework 3.5 или нет .. и если не установлен, установит его. Просто запустите это в командной строке.

if exist "%WINDIR%\Microsoft.Net\Framework\v3.5" goto end start /wait .\Framework\dotnetfx.exe /q /norestart" :end 

Если вы хотите обнаружить другие версии, просто замените v3.5 на v2.0 или v1.0, в зависимости от обстоятельств. Кроме того, если .net не обнаружен, установка .net framework будет выполняться в режиме без вывода сообщений, т. Е. Без пользовательского интерфейса или взаимодействия с пользователем.

0 голосов
/ 10 февраля 2010

Наибольшим номером версии из этого каталога является установленная версия.

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

0 голосов
/ 10 февраля 2010

На CodeProject опубликована статья, которая может сделать именно это, а также на основе командной строки.

Надеюсь, это поможет.

0 голосов
/ 10 февраля 2010

РЕДАКТИРОВАТЬ : мой ответ не имеет значения для вопроса ОП (который был отредактирован после того, как я первоначально ответил).

В соответствии с MSDN вы также можете использовать реестр для проверки установленных версий.

Кроме того, этот сайт утверждает, что существует приложение командной строки под названием csc, которое вы можете использовать - хотя я и не пробовал его использовать, во время установки я использую реестр.

...