Подтвердить что ты не робот

Не .NET.NET содержит .NET 2.0?

У меня возникла странная проблема. Я установил "Visual Studio 2010 final". При установке он показал, что он успешно установил .NET 4.0. При установке некоторых других программ. Они жалуются, что .NET 2.0 отсутствует и просит меня установить его.

Как это возможно?.NET 4.0 должен содержать .NET 2.0 правильно?

EDIT:

Теперь я смущен. В соответствии с этим http://en.wikipedia.org/wiki/File:DotNet.svg CLR является частью .NET 2.0. Установка .NET framework 4.0 подразумевает установку всего стека. который также включает .NET 2.0. Пожалуйста, очистите эту путаницу.

4b9b3361

Ответ 1

Нет..NET 4.0 является автономным CLR, он НЕ основан на 2.0, в отличие от 3.0 и 3.5

Ответ 2

.NET 4.0 - это новая версия среды выполнения, она не зависит от .NET 2.0.

Новая версия фреймворка не включает предыдущие версии, они построены как конкретная версия с определенным набором функций..NET 4.0 имеет новую среду выполнения и новую BCL (базовую библиотеку классов). BCL по существу имеет те же типы, что и .NET 2.0/3.0/3.5 BCL (хотя и с возможными нарушениями), и некоторые новые вещи. Две версии фреймворка (v2.0 и v4.0) работают бок о бок.

Тот факт, что у вас установлен .NET 2.0, вызывает беспокойство, поскольку он распространяется через службу Windows Update. Какую ОС вы используете?

Ответ 3

Проблема в том, что есть две "вещи", когда вы ссылаетесь на .NET 2.0 или .NET 4.0.

Верно, что:

  • библиотека классов .NET Framework 4.
  • содержит все, что содержится в библиотеке классов .NET Framework
  • содержит все, что содержится в библиотеке классов .NET 3.5 SP1 Framework
  • содержит все, что содержится в библиотеке классов .NET 3.0 SP2 Framework
  • содержит все, что содержится в библиотеке классов .NET 2.0 SP2 Framework
  • содержит все, что содержится в библиотеке классов .NET 1.1 SP1 Framework

Использование полезной диаграммы из Microsoft .NET Framework Версии и зависимости: enter image description here

Проблема заключается в том, что Framework отличается от Runtime. Существуют версии шесть.NET Framework, но только четыре версии .NET CLR (Common Language Runtime):

  • CLR 1.1: поставляется с .NET Framework 1.1
  • CLR 2.0: поставляется с .NET Framework 2.0 с пакетом обновления 2 (SP2), 3.0 с пакетом обновления 2 (SP2), 3.5 с пакетом обновления SP1
  • CLR 4.0: поставляется с .NET Framework 4
  • CLR 4.5: поставляется с .NET Framework 4.5

Это означает, что если вы устанавливаете .NET Framework 4, вы все равно можете использовать классы, которые вы использовали в .NET 2. Но если вашему приложению требуется версия 2 CLR, она не будет работать - поскольку этот CLR 2.0 не установлен с .NET Framework 4.0.

Ответ 4

Как уже говорили другие,.NET 4.0 имеет новую среду CLR, которая отличается от CLR.NET 2.0.

По умолчанию приложение будет пытаться запустить на CLR, с которым он был создан.

Вы можете изменить файл applications.exe.config с помощью <SupportedRuntime> элемент, чтобы явно указать системе, которая поддерживает приложение (порядок задает предпочтение):

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727"/>
      <supportedRuntime version="v4.0.30319"/>
   </startup>
</configuration>

(Очевидно, что если в приложении есть что-то, что зависит от чего-то в .net 2.0, который изменился, это все равно не сработает)

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

Ответ 5

Если я не ошибаюсь, 2010 нацеливает инфраструктуру .NET 4.0. Похоже, что у вас отсутствует инфраструктура .Net 2.0 на вашем компьютере.

Ответ 6

насколько я знаю, CLR v2.0.50727 работает выше v4.0.30319

Ответ 7

Да и нет - вы можете запускать код .NET 2 во время выполнения .NET 4, но они являются отдельными механизмами времени исполнения.

В зависимости от того, как установщик проверяет .NET, он не должен обнаруживать 4 или, возможно, отклонять его как неправильное: как никогда безопасно запускать код в точной среде, в которой он был разработан.

2/3.5 - параллельная установка. Я бы посоветовал вам просто установить его - это не должно вызывать никаких проблем.