2009-02-08 17 views
11

Nach einer Menge Versuch und Irrtum (hauptsächlich aufgrund fehlender Dokumentation und Beispiele) habe ich es geschafft, MSI-Installer zu erstellen, die benutzerdefinierte DLLs zu WinSxS als Side-by-Side-Assembly installieren. Es gibt nur ein Problem: Beim Deinstallieren bleiben alle Dateien (DLLs, Manifeste und Kataloge) im WinSxS-Verzeichnis. Wie kann oder soll ich das am besten aufräumen? Ich weiß sicher, dass nichts anderes darauf verweist.Wie kann ich Win32-Assemblys deinstallieren und WinSxS bereinigen?

Ich habe irgendwo gelesen, dass WinSxS einen selbstaufsaugenden Prozess hat, der im Laufe der Zeit aufräumt, aber ich konnte mehr Informationen darüber nicht finden. Können Sie das manuell aufrufen, um Dinge zu bereinigen?

Die einzige andere Möglichkeit, die ich sehe, ist das manuelle Löschen dieser Bits. Zunächst müssen Sie den Eigentümer aller Dateien (Assembly, Katalog, Manifest und deren jeweiliges Verzeichnis) von SYSTEM in ein Administratorkonto ändern, die Berechtigungen anpassen und löschen. Es gibt auch noch Teile in der Registrierung (ich denke, HKLM \ COMPONENTS \ DerivedData \ Components kann ein Ort sein), aber da WinSxS als undurchsichtig behandelt werden soll, ist es schwierig, Informationen zu finden.

Antwort

4

Scavenging wird nirgends ausgesetzt, wo ich weiß. Ich bin mir nicht einmal sicher, wann es automatisch gestartet wird. Vielleicht bei der Deinstallation eines Service Packs? Vielleicht können einige Tool Admins laufen? Ich vergesse es wirklich.

Wie auch immer, mein Vorschlag ist es nicht zu kämpfen. Es gibt so viele kurvenreiche Kurven, dass es sich nicht lohnt, den Speicherplatz wieder zu bekommen. Nach der Deinstallation werden die noch im SxS-Cache befindlichen Bits nicht aktiviert, so dass sie nur Platz verschwenden.

Es ist ein dummes Design, aber Schuld Microsoft und nicht versuchen, zu überkompensieren.

3

Niemand ist überzeugt, dass Sie können - kurz einer vollständigen Neuinstallation, ist Ihr Bloaty WinSxS-Verzeichnis dort zu bleiben.

Es gab eine lange "discussion" of the problem on technet.

Es gibt keine Dokumentation des Formats oder Anweisungen zum Entfernen von Dateien, die nicht mehr benötigt werden - MS scheint zu glauben, dass Speicherplatz auf der Festplatte billig ist. Es gibt eine selbstaufnehmende Funktion, aber niemand ist davon überzeugt, dass es funktioniert, oder wenn es so ist, ist es sehr konservativ (wie Sie hoffen, da Sie nicht Ihr Betriebssystem beschädigen wollen)

Sie können sagen Der Scavenger funktioniert, indem Sie "C: \ Windows \ winsxs \ Temp \ PendingDeletes" überprüfen. Ordner, da hier Dateien durch Windows Update verschoben werden oder ein Installer sie verschiebt - der Scavenger löscht nur die Dateien hier.

+0

Interessanterweise habe ich eine Reihe von Dateien von 2009 drin. Offenbar habe ich das deaktiviert, was das Aufräumen auslöst. Hast du jemals mehr Details über den Prozess gefunden, wie zum Beispiel, was ihn auslöst? – Zero3

3

Sie werden feststellen, dass nach der Deinstallation der Assembly, während die Dateien noch vorhanden sind, sie nicht mehr gebunden werden können. Sie werden also nur "inszeniert" oder zwischengespeichert, aber nicht wirklich installiert.

Rob & gbjbaanb sind korrekt - Sie können eine Bereinigung nicht manuell aufrufen. Versuchen Sie nicht, die Dateien selbst zu löschen - es gibt mehrere Stellen in der Registrierung, an denen sie registriert sind, DerivedData \ Components ist nur eine der vielen Referenzen.

Ich denke, die Regel für Vista ist Scavenging wird vom TrustedInstaller-Dienst nach 10 Minuten Inaktivität der Maschine, nach der letzten Wartung (Service Pack, Hotfix, etc) gestartet. Aber es ist sehr unbeständig, also läuft es nicht so oft wie es sollte. Seien Sie also geduldig und die Dateien verschwinden von selbst.

+0

Tolle Infos, danke Eugene. Kann ich fragen, was mit Gabriels Antwort über "DISM.exe" los ist? Ist das eine akzeptable Diät für den WinSxS-Ordner? :-) –

5

Hier ist ein article, es ist ein bisschen komplette Anleitung zu WinSxS.

Also, in Kürze, Sie können nur einige Komponenten deinstallieren (alle ihre Versionen sind in diesem Ordner), und Sie können Service Pack Brücke Brennprogramm (in Vista heißt es VSP1CLN.EXE und mit SP1 ausgeliefert). Beachten Sie, dass Sie nach der Ausführung nicht in der Lage sein sollten, SP oder andere Komponenten vor dem SP-Veröffentlichungsdatum zu deinstallieren.

2

Nun, ich hatte einige Probleme, wie ich eine 80GB SSD für meine Fenster und die Ordner WinSxS war über 12gb des

ich das Netz gesucht und ich fand diesen Befehl ein:

DISM.exe/online/Cleanup-Image/spSuperseded

Und jetzt ist meine WinSxs 7GB, die wunderbare Nachrichten waren.