Страницы

Поиск по вопросам

четверг, 20 июня 2019 г.

Можно ли удалить установленные SQL Server`ы, Visual C++, Net Framework?

В "Программы и компоненты" имеется несколько установленных версий Microsoft SQL Server (2005, 2008 Compact Edition, 2012 Express Local и т.п.). Можно ли удалить их и оставить к примеру только Microsoft SQL Server 2014?
Дополнение: Есть еще куча Microsoft Visual C++ 2005..2014 Redistributable (x86) - 10 - 14.0.23506 Можно их снести, а оставить только последнюю версию?
Тот же вопрос по отношению к .NET Framework


Ответ

Не стоит удалять ни .NET Framework, ни MSVC Redistributable.
Дело в том, что они не заменяют друг друга. Если программа требует Redistributable MS VC 2008, то она перестанет работать, когда вы его снесёте, даже если на машине будет старший Redistributable. Таким образом предотвращается DLL Hell: ситуация, когда программа не проверяет версию рантайма, с которой работает, и вылетает из-за бинарной несовместимости версий.

То же касается и фреймворка .NET, хотя здесь немного сложнее: некоторые версии можно сносить, некоторые нет, между ними существуют нетривиальные зависимости
MSDN: Выбор более старых версий
Версии .NET Framework 2.0, 3.0 и 3.5 построены на базе одной и той же версии среды CLR (CLR 2.0). Эти версии представляют последовательные уровни единой установки. Каждая версия построена на базе предыдущих версий. Невозможно запустить версии 2.0, 3.0 и 3.5 параллельно на одном компьютере. При установке версии 3.5 автоматически создаются уровни версий 2.0 и 3.0, и приложения, созданные для версий 2.0, 3.0 и 3.5, могут выполняться в версии 3.5. Однако в .NET Framework 4 этот принцип "слоев" закончился. Начиная с .NET Framework 4, разработчики могут использовать внутрипроцессное параллельное размещение для запуска нескольких версий среды CLR в одном процессе. Кроме того, если в приложении выбрана целевая платформа версии 2.0, 3.0 или 3.5, пользователям может потребоваться включить .NET Framework 3.5 на компьютере с Windows 8 или Windows 8.1, прежде чем они смогут запустить это приложение.
Из версий 4.x, старшие версии являются заменой младшим, так что по идее достаточно сохранить самую старшую из установленных версий (4.6.1 на текущий момент). Версия 3 и 3.5 являются по сути сервис-паками к версии 2, так что если они у вас есть, нужно оставлять и их, и версию 2.
Есть противоречивые сведения о том, стоит ли сносить младшие версии (1.1, 2, 3, 3.5), если у вас уже есть 4+. В теории они должны быть совместимы. Но я бы не рисковал, много места они не занимают.

Дополнение (по результатам обсуждения в чате и комментариях):
Начиная с Windows Server 2003, .NET 2.0 является частью системы, так что он не будет отображаться в списке установленных программ. То же относится к .NET 3.0, начиная с Vista/2008. Это значит, что вам из всего набора фреймворков 2.0, 3.0, 3.5 вам нужно иметь 3.5 (желательно SP1), при этом 2.0 SP2 и 3.0 SP2 у вас будут автоматически (и вы, судя по всему, не сможете их удалить).
С 4.х всё проще: вам нужен лишь последний фреймворк (на данный момент 4.6.1), инсталляция нового должна замещать предыдущий.
Для старинных версий 1.1 и 1.0: программа будет работать и при наличии 2.0, если только она не отконфигурирована на использование конкретной версии, и игнорирование старших версий. То есть, в большинстве случаем удалять их можно, с минимальным риском. Но если рисковать не хочется, можно и оставить.
Дополнение В Windows 10 уже изначально стоит Net framework 2.0, 3.0, 3.5, 4.0
Статья, как проверить установленные версии: Практическое руководство.Определение установленных версий платформы .NET Framework

Теоретически, можно удалять версии, если вы точно знаете, что они не нужны ни одной из программ на вашей машине. Но это по сути задание не для человека, а для системы управления зависимостями. Лучше неё с задачей никто не справится.

Комментариев нет:

Отправить комментарий