2010-06-30 2 views
12

У меня возникла странная проблема. Я установил «Visual Studio 2010 final». При установке он показал, что он успешно установил .NET 4.0. При установке некоторых других программ. Они жалуются, что .NET 2.0 отсутствует и просит меня установить его.Не .NET .NET содержит .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. Пожалуйста, очистите эту путаницу.

+1

В какой ОС вы находитесь? Vista поставляется с .NET 2.0 по умолчанию и Windows 7 с .NET 3.5 SP1. –

+0

«Должно» - это довольно предположение. .Net 2.0 не включил .Net 1.0, помните? –

ответ

13

No. .NET 4.0 является автономным CLR, он не основан на 2.0, в отличие от 3,0 до 3,5

0

Если я не misstaken 2010 мишенями .Net Framework 4.0. Кажется, что у вас отсутствует инфраструктура .Net 2.0 на вашем компьютере.

0

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

0

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

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

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

8

.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. Какую ОС вы используете?

+0

Windows XP ____ – pecker

+0

Это в корпоративной среде? Я бы загрузил и установил .NET Framework 3.5, который включает в себя runtime v2, а также v3.5 BCL http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A- 413D-8319-81DA479AB0D7 & displaylang = ru –

4

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

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

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

<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

проблема есть 2 "предметы" если вы ссылаетесь на .NET 2.0 или .NET 4.0.

Это правда, что:

  • в .NET 4.5 библиотека классов
  • Framework содержит все из библиотеки классов .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 Versions and Dependencies: enter image description here

Вопрос заключается в том, что Framework отличается от Времени воспроизведения. Есть шесть версии .NET Framework , но только четыре версии .NET CLR (Common Language Runtime):

  • CLR 1.1: поставляется с .NET Framework 1.1
  • CLR 2,0 : поставляется с .NET Framework 2.0 SP2, 3.0 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.

+0

Просто из интереса - откуда взялось это изображение? Он не отображается в ссылке. – Kye

+1

@Kye Раньше это было. Microsoft после удаления. [Но они не могут удалить его с archive.org!] (Https://web.archive.org/web/20120201195011/http://msdn.microsoft.com/en-us/library/bb822049 (v = VS 0,110) .aspx) –