Большинство из вас могли заметить папку winsxs в Windows 7/8/10 и были удивлены её размерами. Для тех, ко не знает где находится папка на C:\Windows\Winsxs и имеет колоссальные размеры! Моя папка занимает почти 5 ГБ и имеет около 6000 папок и файлов 25000 и занимает почти 40% от папки Windows ! Размер этой папки winsxs, в XP составляет около 25-50 МБ; большие размеры в Windows 10, Windows 8, Windows 7, и это интригует! Посмотрите на изображение ниже.
Папка winsxs, хранит несколько копий файлов для того, чтобы позволить нескольким приложениям работать в Windows без каких-либо проблем совместимости. Если вы зайдёте внутрь, то вы увидите, как она выглядит, и в ней много дубликатов dll-библиотек, каждая из которых имеет то же название. Это на самом деле, разные версии одних и тех же файлов, которые хранятся здесь; так как разным программам могут потребоваться разные версии.
Папка winsxs в Windows 10/8/7
Короче, папка winsxs может выдавать ошибки, которые стоят за окнами бок с папкой Windows и имеет собственный кэш. Библиотеки, которые будут использоваться несколькими приложениями хранятся там. Эта функция впервые появилась в Windows ME и рассматривается как решение от Microsoft, так называемых вопросов “dll hell’“, которые мучали в Windows 9х.
Папка winsxs ‘резервное копирование’ является крупнейшей в системе, как можно заметить на рисунке ниже.
Опять же, как можно увидеть на изображении ниже, в папке winsxs, типы файлов в “Other” занимают основную часть пространства. Они в основном состоят из .imd, .ngr, .csd, .dll, .dll.mui, .exe и других типов файлов.
В Windows 7 и более поздних версиях нет папки ‘dllcache’ и вы не сможете найти папку i386’, где система кэширует (как в XP) все эти модули источников. За это теперь отвечает именно эта папка winsxs в которой хранятся общие компоненты бок-о-бок с приложениями. Эти файлы могут иметь несколько версий одной сборки или приложения. Каждая параллельная сборка имеет уникальный идентификатор. Одним из атрибутов сборки является своя версия. Сборки Side-by-side assemblies используются операционной системой в качестве основных единиц именования, который обязательный для управления версиями, развертыванием и конфигурацией. Папка winsxs включает в себя все дополнительные компоненты и 3-й партии файлов Win32.
Но зачем так много вложенных папок, и почему так много разных версий одних и тех же библиотек dll, EXE или других файлов ?
Как уже упоминалось, Windows хранит старые dll файлы и компоненты библиотеки в папке winsxs. Теперь, если в новой версии этот файл является частью операционной системы, но конкретное применение требует определенной старой версии для работы, то программа будет использовать старую версию из папки winsxs, оставив более новые версии на их нынешнем месте, для других приложений, которым могут потребоваться эти файлы.
Так что, очевидно, Вы не сможете удалить эту папку или переместить её в другое место. Не рекомендуется удалять что-либо в ней, так как такой шаг мог бы сделать ваши приложения не работающими, или даже сломать вашу систему! Если у вас есть много установленных приложений, вы можете рассчитывать на Jumbo размер папки winsxs. Для этой папки winsxs не может любой другой объем, чем объем системы. Это связано с жесткими ссылками NTFS. Если вы попробуете переместить папку, это может привести к обновлению Windows пакетами обновления, которые неправильно установлены.
При удалении компонентов из папки winsxs, или из сборки и т. д., вы можете только сделать хуже. Каждая система будет реагировать по-разному. Что может работать для одной, может сломать другую! Например, если вы устанавливаете программу, которая требует определенной сборки, которую можно удалить, то программа просто не запустится! Сжатие папки тоже делать нельзя, так как это может привести к проблемам во время WindowsUpdates или при установке исправлений.
Самый безопасный способ, чтобы очистить её, просто деинсталировать приложения, которые вам не нужны. Но, это не доказательство того, что вы полностью удалили приложение, так как многие приложения по-прежнему оставляют свои файлы здесь, так как они могут совместно использоваться другими приложениями. Так что вероятность не срабатывания не используемых dll файлов станет довольно высокая.
Мы бы не советовали использовать очистку папки winsxs инструментами WinsxsLite, так как вы могли бы в конечном итоге нарушить работу всей вашей системы Windows.
И если вы хотите опробовать новое программное обеспечение или устанавливаете и часто удаляете, Вы можете заметить, что размер папки winsxs действительно большой, так как Windows будет хранить несколько копий этих файлов, для того, чтобы несколько приложений без проблем могли работать в режиме совместимости.
Очистка папки Winsxs
В ОС Windows 8.1 введён новый параметр командной строки для DISM.exe, для чего используется /AnalyzeComponentStore. Выполнив эту команду, она проанализирует папку winsxs и скажет, рекомендуется Очистка компонентов хранилища или нет.
В ОС Windows 8, откройте программу инструмент Очистки диска и используйте центр обновления Windows Очистка для возможности очистки папки winsxs.
Microsoft выпустила обновление, которое добавлено в обновления Windows, для возможности очистки диска в системе Windows 7.
Вот несколько других вариантов которые вы можете рассмотреть, чтобы освободить дисковое пространство – несколько обычных и экстремальных методов:
Запустите программу Очистки диска или программу CCleaner.
Удалите неиспользуемые приложения.
Переместите файл подкачки на другой диск.
Отключите гибернацию.
Используйте выделенный файл дампа для записи файлов дампа памяти на другой объем в системе.
Отключите точки восстановления системы.
Выгрузите профиль пользователя и программу директории в другую папку в системе.
Обновление для Windows 7 также было сделано и все компоненты операционной системы находятся в папке winsxs – на самом деле мы называем это место хранилищем компонентов. Каждый компонент имеет уникальное имя, которое включает в себя версию, язык, и архитектуру процессора. Папка winsxs -единственное место, где можно найти любой компонент в системе, все другие экземпляры файлов, которые вы видите в системе “проецируются” на жестком диске в виде связей с хранилищем компонентов.
Теперь, когда вы знаете, почему эта папка может расти, чтобы быть настолько большой, ваш следующий вопрос, наверное будет, почему мы не можем удалить старые версии компонентов. Короткий ответ на это – надёжность. Хранилище компонентов, наряду с другой информацией о системе, позволяет определить в любой момент времени, какая версия компонента лучшая для проекта. Это означает, что если вы удалите Обновление безопасности, мы можем установить следующую версию системы – но у нас больше не будет из чего выбирать, чтобы решить проблему. Это также означает, что если вы решили установить дополнительный компонент, мы не просто выбираем окончательную версию компонента, мы будем смотреть, чтобы увидеть, какая самая высокая доступная версия системы.
Единственный способ безопасно уменьшить размер папки winsxs – это уменьшить набор возможных действий, которые система может принимать – самый простой способ сделать это, чтобы удалить пакеты, которые установлены компонентами, в первую очередь. Это может быть сделано путем удаления заменённых версий пакетов в системе. Пакет обновления содержит двоичный файл VSP1CLN.EXE инструмент, который сделает пакет обновления постоянным для вашей системы, и если удалить RTM-версии, то это повлияет на все замененные компоненты. Это может быть сделано, только если мы сделаем пакет постоянного обслуживания, тем самым мы сможем гарантировать, что если когда-нибудь понадобится версия RTM, то она есть в папке winsxs.
На нескольких блогах были даже какие-то “подпольные” инструменты, которые скажут вам, что можно удалить папку winsxs Directory, и всё будет ОК, но это будет верно, что после установки, вы сможете удалить её из системы и окажется, что система загружается и работает нормально. Но, как описано выше, это очень плохая практика, так как вы удаляете возможность надежного обслуживания всех компонентов операционной системы и возможность обновить или настроить дополнительные компоненты в системе. Windows поддерживает только каталог winsxs на физическом диске в её первоначально установленном месте.