На протяжении многих лет на моих клиентских машинах через WSUS были развернуты различные версии .NET. Теперь кажется, что на многих машинах эти установки были связаны друг с другом, и некоторые обновления безопасности .NET не работают.
Я убедился, что могу запустить инструмент очистки .NET, чтобы избавиться от всех установленных .NET на клиенте, а затем я могу выпустить .NET 3.5 через WSUS. Похоже, это решило проблемы, возникающие у меня на машине, на которой я это пробовал.
Возникает вопрос: если у меня .NET 3.5, есть ли причина устанавливать и предыдущие версии?
Обратная совместимость - плохой термин для использования. .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). С точки зрения требований к приложению:
Я почти уверен, что .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).
.NET в некоторой степени обратно совместим, но вам придется сравнивать версии фреймворка. Что они действительно заявляют, так это то, что он совместим бок о бок, и это проблема, с которой вы столкнулись. Определенно есть причина для установки других версий. Приложение может быть написано для целевой версии, и если эта версия отсутствует на компьютере, приложение завершится ошибкой.
Нет, .net не имеет обратной совместимости. MS оставляет за собой право вносить изменения. От 2,0 до 3,5 - это IIRC, но это скорее «удачная сторона». По сути, установлены все необходимые фреймворки, и приложение нацелено на фреймворк, для которого оно было скомпилировано - это позволяет MS очищать новые версии и вносить несовместимые изменения.