Как я могу удалить сборки Win32 и очистить WinSxS? - PullRequest
11 голосов
/ 08 февраля 2009

После долгих проб и ошибок (в основном из-за отсутствия документации и примеров) мне удалось создать установщики MSI, которые устанавливают пользовательские библиотеки DLL в WinSxS в виде параллельной сборки. Существует только одна проблема: удаление оставляет все файлы (DLL, манифесты и каталоги) в каталоге WinSxS. Как я могу или должен лучше очистить это? Я точно знаю, что ничто иное не ссылается на это.

Я где-то читал, что в WinSxS есть процесс самоочистки, который со временем очищается, но я не смог найти больше информации об этом. Можете ли вы вручную вызвать это, чтобы очистить вещи?

Единственный другой способ, который я вижу, - это ручное удаление этих битов. Сначала необходимо изменить владельца всех файлов (сборка, каталог, манифест и их соответствующие каталоги) с SYSTEM на учетную запись администратора, настроить разрешения и удалить их. В реестре также есть фрагменты (я думаю, что HKLM \ COMPONENTS \ DerivedData \ Components могут быть одним местом), но поскольку WinSxS следует рассматривать как непрозрачный, трудно найти какую-либо информацию.

Ответы [ 6 ]

5 голосов
/ 31 августа 2010

Вот статья , это своего рода полное руководство по WinSxS.

Итак, в скором времени вы можете удалить только некоторые компоненты (все их версии находятся в этой папке) и запустить утилиту записи моста Service Pack (в Vista она называется VSP1CLN.EXE и поставляется с SP1). Обратите внимание, что после выполнения вы не сможете удалить SP или какие-либо компоненты до состояния, предшествующего дате выпуска SP.

5 голосов
/ 08 февраля 2009

Мусор не раскрывается нигде, о чем я знаю. Я даже не уверен, когда он запускается автоматически. Может быть, при удалении пакета обновления? Может быть, некоторые администраторы инструмента могут работать? Я действительно забываю.

Во всяком случае, мое предложение не борись с этим. Там так много поворотов, что не стоит пытаться вернуть место на диске. После удаления биты, все еще находящиеся в кэше SxS, не будут активированы, поэтому они просто тратят место.

Это глупый дизайн, но вините Microsoft и не пытайтесь компенсировать это.

3 голосов
/ 13 февраля 2009

Вы заметите, что после удаления вашей сборки, пока файлы все еще там, они больше не могут быть связаны с ними - поэтому они просто «подготовлены» или кэшированы, но на самом деле не установлены.

Rob & gbjbaanb верны - вы не можете вручную вызвать мусорщик самостоятельно. Не пытайтесь удалить файлы самостоятельно - в реестре есть несколько мест, где они зарегистрированы, DerivedData \ Components - лишь одна из многих ссылок.

Я думаю, что правило для Vista - это очистка, запускаемая службой TrustedInstaller через 10 минут бездействия компьютера, после последней операции обслуживания (пакет обновления, исправление и т. Д.). Но это очень непостоянно, поэтому не так часто, как следовало бы. Так что просто наберитесь терпения, и файлы исчезнут сами собой.

3 голосов
/ 08 февраля 2009

Никто не убежден, что вы можете - если не считать полной переустановки, ваш вздутый каталог WinSxS останется там.

Прошло долгое "обсуждение" проблемы по technet .

Нет документации о формате или каких-либо инструкций по удалению файлов, которые больше не нужны - похоже, MS считает, что дисковое пространство дешево. Существует функция самоочистки, но никто не уверен, что она работает, или, если она работает, она очень консервативна (как можно надеяться, поскольку вы не хотите, чтобы она сломала вашу ОС)

Вы можете узнать, работает ли мусорщик, проверив "C: \ Windows \ winsxs \ Temp \ PendingDeletes". папка, так как именно здесь файлы перемещаются с помощью обновления Windows или установщик перемещает их в - мусорщик просто удаляет файлы здесь.

2 голосов
/ 27 марта 2012

Ну, у меня были некоторые проблемы, так как у меня есть 80 ГБ SSD для моих окон, а папка WinSxs была около 12 ГБ

Я искал в сети и нашел эту команду:

DISM.exe / online / Cleanup-Image / spsuperseded

А теперь мой WinSxs - 7 ГБ, что было замечательной новостью.

0 голосов
/ 25 сентября 2013

Есть несколько обновлений, касающихся метода очистки, которые применяются к более новым ОС. Чек http://www.karafilis.net/winsxs-cleanup

...