Как удалить неустановленную DLL из кеша SxS - PullRequest
1 голос
/ 05 августа 2011

У меня была VS 2008. Я обновил до VS 2010 и удалил VS 2008.

У меня есть тест, который запускается на моей машине, но не загружается на машины в лаборатории сборки.После некоторой отладки я понял, что исполняемый файл теста по-прежнему зависел от msvcr90d.dll (которая является библиотекой времени выполнения отладки VC ++ 2008).Несмотря на то, что я удалил VS 2008, тест работает на моей машине, потому что эта DLL-библиотека времени выполнения все еще существует в параллельном кэше (% windir% / winsxs).Машина сборки не имеет библиотеки DLL, поэтому она не будет загружаться туда.

Разве удаление Де 2008 не привело к удалению всех его DLL-библиотек во время выполнения из параллельного кэша?

Есть ли способ вручную удалить эти старые библиотеки DLL из параллельного кэша?Я хотел бы иметь возможность легко обнаруживать другие места, где у меня все еще может быть устаревшая зависимость.

1 Ответ

2 голосов
/ 06 августа 2011

Сначала вам нужно вступить во владение содержащейся папкой. Все папки будут принадлежать SYSTEM или TrustedInstaller. Так что сделайте это:

Щелкните правой кнопкой мыши -> Свойства -> вкладка «Безопасность» -> «Дополнительно» -> вкладка «Владелец» -> «Редактировать» -> выберите себя в качестве владельца-> отметьте «Заменить владельца на подконтейнерах и объектах» -> «ОК»

Как только вы это сделаете, вы можете сделать правый клик-> Свойства-> вкладка Безопасность-> Дать себе полный контроль-> ОК

Или, если вы знакомы с командой cacls, вы можете сделать это из командной строки.

Как только вы получите полный контроль, вы можете переместить папку, которую я настоятельно рекомендую удалить. Удаление файлов из winsxs может привести к поломке других приложений или даже Windows.

...