Есть ли команда командной строки для проверки того, какая версия .NET установлена
У меня есть набор скриптов для выполнения сценариев. Вы можете использовать сценарии на любом сервере 2008 года. Тем не менее, мне нужно проверить, установлен ли .NET 3.5 (до запуска скриптов) с помощью пакетного файла dos. Это возможно?
Я знаю, что могу проверить, существует ли файл в C:\WINDOWS\Microsoft.NET\Framework\v3.5
, но было бы неплохо иметь что-то более надежное.
Я хотел бы проверить, действительно ли он установлен, а не только, если существует файл dir/.
Спасибо
Ответы
Ответ 1
К сожалению, лучший способ - проверить этот каталог. Я не уверен, что вы имеете в виду, но "фактически установлен", поскольку .NET 3.5 использует ту же среду CLR, что и .NET 3.0 и .NET 2.0, поэтому все новые функции завершаются в новых сборках, которые живут в этом каталоге. В принципе, если каталог существует, то устанавливается 3.5.
Единственное, что я хотел бы добавить, - найти директорию для максимальной гибкости:
%windir%\Microsoft.NET\Framework\v3.5
Ответ 2
Поскольку вы сказали, что хотите узнать, действительно ли он установлен, я считаю, что лучший способ (не доходящий до версии определенного кода) - это проверить заведомо названный ключ реестра "Установить". 0x1 означает "да":
C:\>reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"| findstr Install
Install REG_DWORD 0x1
InstallPath REG_SZ c:\WINNT\Microsoft.NET\Framework\v3.5\
Это также официальный официальный метод
Кроме этого, я думаю, что единственный способ быть на 100% уверенным - фактически запустить простое консольное приложение, скомпилированное для вашей версии фреймворка. Лично я считаю это ненужным и доверяю методу реестра просто отлично.
Наконец, вы можете настроить тестовый сайт интрасети, доступный с вашего сервера, и обнюхивает User Agent для определения версий .NET. Но это, конечно, не пакетное решение. Также см. .
Ответ 3
Вы имеете в виду, что команда DOS, такая как ниже, выполняет задание, отображающее установленные платформы .NET:
wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version
Затем может отображаться следующее:
Version
4.0.30319
WMIC очень полезен, как только вы его освоите, гораздо проще, чем кодирование WMI в сценариях в зависимости от того, чего вы хотите достичь.
Ответ 4
Вы можете написать себе небольшое консольное приложение и использовать System.Environment.Version, чтобы узнать версию. Скотт Гензельман сообщает об этом блоге.
Или загляните в реестр для установленных версий. HKLM\Software\Microsoft\NETFramework Setup\NDP
Ответ 5
Если вы собираетесь запустить небольшое консольное приложение, вы также можете установить clrver.exe
из .NET SDK. Я не думаю, что вы можете стать чище, чем это. Это не мой ответ (но я согласен), я нашел его здесь.
Ответ 6
REM
Искать файл CONFIG, если он не выходит, пользователь не имеет .Net framework 2.0
`
SET FileName=%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG
IF EXIST %FileName% GOTO INSTALL_DIALER
ECHO.You currently do not have the Microsoft(c) .NET Framework 2.0 installed.
Ответ 7
Это работает для меня:
@echo off
SETLOCAL ENABLEEXTENSIONS
echo Verify .Net Framework Version
for /f "delims=" %%I in ('dir /B /A:D %windir%\Microsoft.NET\Framework') do (
for /f "usebackq tokens=1,3 delims= " %%A in (`reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\%%I" 2^>nul ^| findstr Install`) do (
if %%A==Install (
if %%B==0x1 (
echo %%I
)
)
)
)
echo Do you see version v4.5.2 or greater in the list?
pause
ENDLOCAL
2^>nul
перенаправляет ошибки в пар.
Ответ 8
вы можете проверить установленные компиляторы С# и печатную версию .net:
@echo off
for /r "%SystemRoot%\Microsoft.NET\Framework\" %%# in ("*csc.exe") do (
set "l="
for /f "skip=1 tokens=2 delims=k" %%$ in ('"%%# #"') do (
if not defined l (
echo Installed: %%$
set l=%%$
)
)
)
echo latest installed .NET %l%
csc.exe
не имеет переключателя -version
, но он печатает версию .net в своем логотипе. Вы также можете попробовать с msbuild.exe, но .net framework 1. * не имеет msbuild.
Ответ 9
вы можете взглянуть на эту страницу для .NET 4:
http://www.itninja.com/question/batch-script-to-check-and-install-dotnet4-0