открыть - узнать версию.net core
Какой надежный способ определить, какие версии.NET установлены на Windows Server? (12)
Вероятно, это неприятный способ найти версии, но мне всегда казалось, что вся версия установлена на <root>:\WINDOWS\Microsoft.NET\Framework .
Это предоставляет папки с именами, такими как v2.0.50727 которые, как я считаю, предоставляют подробную информацию о версии.
Этот вопрос связан не столько с программированием, сколько с его развертыванием.
Я часто общаюсь с группой в моей компании, чья работа заключается в том, чтобы поддерживать наши производственные серверы Windows и размещать на них наш код. По причинам, связанным с соблюдением законодательства и соблюдением требований, я не имею прямой видимости или никакого контроля над серверами, поэтому единственный способ определить, какие версии .NET установлены на любом из них, - это указания, которые я даю этой группе.
До сих пор все методы, которые я могу придумать, чтобы определить, какие версии установлены (проверьте, что для административных средств, соответствующих 1.1 или 2.0, проверьте записи в списке «Установка и удаление программ», проверьте наличие каталоги под c: \ Windows \ Microsoft.NET) ошибочны (я видел, по крайней мере, одну машину с 2.0, но не 2,0 записи в разделе «Администрирование» - и этот метод ничего не говорит о 3.0+, списке «Установка и удаление программ» может выйти из-под контроля с реальностью, а существование каталогов не обязательно означает ничего).
Учитывая, что мне обычно нужно знать, что это происходит заранее (обнаружив, что «oops, у этого нет всех версий и пакетов обслуживания, которые вам нужны» на самом деле не очень хорошо работают с короткими окнами обслуживания), и я должен выполните проверку «по прокси», так как я не могу напрямую подключиться к серверам, какой надежный способ определить, какие версии .NET установлены на производственной Windows Server? Предпочтительно, какой-то внутренний способ сделать это с использованием того, что устанавливает инфраструктура, поскольку это будет быстрее, и не нужно использовать какую-либо утилиту для загрузки, а также метод, который, безусловно, потерпит неудачу, если фреймворки не будут правильно установлены, но будут иметь файлы на месте (т.е. , есть каталог и gacutil.exe там, но эта версия фреймворка на самом деле не установлена »)
EDIT: В отсутствие хорошего надежного внутреннего способа сделать это встроено в Framework (ы), кто-нибудь знает о хорошей, легкой, не требующей установки программе, которая может это выяснить? Я могу представить, что кто-то мог бы легко написать его, но если он уже существует, это будет еще лучше.
Вы должны открыть IE на сервере, для которого вы ищете эту информацию, и перейти на этот сайт: http://www.hanselman.com/smallestdotnet/
Это все, что нужно.
На сайте есть сценарий, который отображает «UserAgent» вашего браузера и определяет, какая версия (если есть) .NET Framework у вас (или не установлена) установлена и отображает ее автоматически (затем вычисляет общий размер, если вы выбрали для загрузки .NET Framework).
Если вы хотите найти версии до .NET 4.5, используйте код для консольного приложения. Как это:
В противном случае вы можете найти .NET 4.5 или более поздней версии, запросив вот так:
Тогда результат консоли скажет вам, какие версии установлены и доступны для использования с вашими развертываниями. Этот код пригодится, потому что у вас есть их как сохраненные решения в любое время, когда вы хотите проверить его в будущем.
Если машина, которую вы хотите проверить, имеет установленный .NET SDK, вы можете использовать командную строку SDK и запустить программу CLRVer.exe .
Как ни странно, я написал код для этого, когда вышел 1.1 (что было, семь лет назад?) И немного изменил его, когда вышел 2.0. Я не смотрел на нее уже много лет, так как мы больше не управляем нашими серверами.
Это не безупречно, но я все равно публикую его, потому что я нахожу его юмористическим; в том, что это проще сделать в .NET и проще в силовой оболочке.
Проверьте, какая версия .NET Framework установлена
Откройте командную строку и скопируйте одну из приведенных ниже команд
Описан официальный способ обнаружения .NET 3.0
Недостаток, потому что он требует, чтобы вызывающий пользователь имел права доступа к реестру.
MSDN также упоминает метод обнаружения .NET 3.5 путем проверки строки User Agent:
Я думаю, что Microsoft должна была бы работать лучше, чем это.
Официальный ответ Microsoft о том, как это сделать, приведен в статье KB878785 .
Развертывание OneTouch будет выполнять все обнаружение и установку предварительных условий. Вероятно, лучше всего пойти с заранее подготовленным решением, чем пытаться катиться самостоятельно. Попытка сворачивать самостоятельно может привести к проблемам, потому что все, что вы делаете, может измениться с помощью исправления или пакета обновления. Вероятно, у Microsoft есть эвристика для определения, какая версия работает.
Существует официальный ответ Microsoft на этот вопрос в статье базы знаний [Как определить, какие версии и уровни пакета обновления Microsoft .NET Framework установлены] [2]
Код статьи: 318785 - Последнее изменение :: 7 ноября 2008 г. - Редакция: 20.1 Как определить, какие версии .NET Framework установлены и были ли применены пакеты обновления.
К сожалению, он не работает, потому что версия mscorlib.dll в каталоге 2.0 имеет версию 2.0, и нет версии mscorlib.dll в каталогах 3.0 или 3.5, хотя 3.5 SP1 установлен . Почему был бы так дезинформирован официальный ответ Microsoft?
Чтобы получить установленную версию dotnet, Создайте консольное приложение. Добавьте этот класс. Запустите этот
Я зашел в Windows Update и просмотрел историю обновлений, зная, что исправление сервера постоянно обновляется. Я просмотрел обновления .NET, и он показал мне, какие версии имели обновления, что позволило мне заключить, какие версии были установлены.