Ответ 1
Непосредственно из источника:
Как определить, какие версии и уровни пакета обновления Microsoft.NET Framework установлены
Какими способами (программным и иным образом) определить, какие версии .NET работают в системе?
Непосредственно из источника:
Как определить, какие версии и уровни пакета обновления Microsoft.NET Framework установлены
Если вам нужна текущая версия рамки в использовании, вы можете увидеть это через:
System.Environment.Version
Я нашел Как проверить версию .NET Framework, установленную, гораздо удобнее. По существу, откройте Internet Explorer и вставьте его в адресную строку:
javascript:alert(navigator.userAgent)
Я не знаю, работает ли он всегда, или если он завершен, но он работает для моих целей, не требует много дополнительного чтения и работает без установки каких-либо дополнительных.
Возможно, самая маленькая загрузка .NET Framework, которая будет сообщать вам на основе отправляемых вами заголовков. Он работает только в Internet Explorer или если у вас установлено расширение Firefox. Дополнительная информация в Сообщение в блоге Hanselman.
Если вы используете IIS6 и выше, откройте IIS и нажмите "Расширения веб-служб". В нем будут перечислены все установленные рамки. Конечно,.NET 3.0 и 3.5 оба основаны на структуре 2.0.
Это не обязательно работает, я бы сказал. Так как на одном компьютере могут быть установлены .NET 1.1, 2.0, 3.0 и 3.5, они могут отлично работать бок о бок. Значение одного из ваших приложений может быть запущено поверх 1.1, а другое веб-приложение работает на 2.0.
В IIS (для веб-приложения) это довольно просто, просто перейдите к свойству виртуального каталога/приложения и перейдите на вкладку ASP.NET, вы должны увидеть, какую версию .NET вы используете (или скорее, какая версия ASP.NET, которая в значительной степени связана с версией .NET Framework).
пс. просто помните, вы можете запускать только одну версию .NET Framework для каждого пула приложений в IIS. Поэтому, если вы попытаетесь использовать один и тот же пул приложений для запуска различных версий фреймворка, вы будете удивлены. Решение состоит в том, чтобы просто создать пул приложений для конкретной версии фреймворка (т.е. Один пул для всех 1.1 фреймворков и другой для 2.0 фреймворка).