Версии .NET обратно совместимы?

8

За эти годы различные версии .NET были развернуты на моих клиентских компьютерах через WSUS. Теперь кажется, что на многих машинах эти установки использовали друг друга, и некоторые обновления безопасности .NET терпят неудачу.

Я подтвердил, что могу запустить средство очистки .NET, чтобы избавиться от всех установок .NET на клиенте, и затем я могу вытолкнуть .NET 3.5 через WSUS. Кажется, это решило проблемы, которые у меня возникли на машине, на которой я ее пробовал.

Таким образом, вопрос: если у меня есть .NET 3.5, есть ли причина для установки предыдущих версий?

Boden
источник

Ответы:

14

Обратная совместимость - плохой термин для использования. .NET 1.0, 1.1 и 2.0 являются их собственными средами, которые не имеют совместимости друг с другом. .NET 3.0 и 3.5 - это супер-наборы фреймворка 2.0, использующие базовую фреймворк .NET 2.0 с дополнительными библиотеками DLL для предоставления дополнительных функций (3.0 включал такие вещи, как WCF и WWF, 3.5 имел такие вещи, как LINQ). С точки зрения требований к заявке:

  • Для приложений 1.0 необходимо установить .NET 1.0.
  • Для приложений 1.1 требуется установить .NET 1.1.
  • Для приложений 2.0 требуется установить .NET 2.0, 3.0 или 3.5.
  • Для приложений 3.0 требуется установить .NET 3.0 или 3.5.
  • Для приложений 3.5 требуется установить .NET 3.5.

Я вполне уверен, что .NET 4.0 следует той же модели, что и 2.0 - 3.5 (база 2.0 с dll дополнительных функций). Таким образом, установка .NET 3.5 покроет вас для приложений .NET 2.0 - 3.5. Вам нужно будет установить .NET 1.1, если вы запускаете какие-либо приложения 1.1 (то же самое для приложений 1.0).

Эван М.
источник
4
Я уверен, что .net 4 - это совершенно новый CLR, который работает бок о бок с любыми предыдущими версиями - это не просто пакет расширения, как 3 / 3.5
Майкл Харен
@ Майкл - Все еще не нашел точную информацию, но, похоже, ты прав. Виноват.
Эван М.
+1. Потрясающий ответ. Я не могу сказать вам, сколько раз мне приходилось объяснять это нашим инженерам службы поддержки.
Joeqwerty
2
msdn.microsoft.com/en-us/library/bb822049.aspx - статья, которая подтверждает то, что вы заявляете выше. И да, 4.0 автономен, не зависит от других версий.
Ларри Смитмиер
2

.NET в некоторой степени обратно совместим, но вам нужно сравнивать версии фреймворка. Они утверждают, что они совместимы друг с другом, и это проблема, с которой вы столкнулись. Определенно есть причина для установки других версий. Приложение может быть написано для целевой версии, и если эта версия отсутствует на компьютере, приложение завершится ошибкой.

squillman
источник
Это то, что я думал. Я думаю, мне придется делать это на машине за машиной.
Боден
@Boden: обычно вы можете переключить приложение на другой фреймворк, но для этого требуется изменить файл app.config или web.config для приложения. Однако я настоятельно рекомендую против этого, поскольку это может привести к целому ряду проблем для приложения и, таким образом, полностью сломать его.
squillman
Вероятно, вы получите действительно хороший охват, развернув 3.5 сейчас и 4.0, когда он выйдет в апреле. 3.5 имеет тот же CLR, что и 2, поэтому вам не нужно делать 2 и 3.5. Очень немногие приложения работают с 1.1 больше, так что вы можете отключить это и включить его только в том редком случае, когда это требуется.
Майкл Харен
-1

Нет, .net не имеет обратной совместимости. MS оставляет за собой право вносить изменения. 2,0 и 3,5 - это IIRC, но это скорее "счастливая сторона". У него есть все необходимые фреймворки, а приложение ориентировано на фреймворк, против которого оно было скомпилировано - это позволяет MS очищать новые версии и вносить несовместимые изменения.

TomTom
источник