Windows操作系統作為優秀的操作系統,由開發操作系統的微軟公司控制接口和設計,公開標準,因此,有大量商業公司在該操作系統上開發商業軟件。 WinSxS是什么文件夾WinSxS(Side-by-Side)文件夾其實是微軟為了解決 Windows 系統中的「DLL Hell」問題而創建的,「DLL Hell」簡單一點來解釋就是:如果某應用程序更改了一個動態鏈接庫(DLL)文件,則會影響到使用同一 DLL 的應用程序關鍵功能的情況。 例如,應用程序 A 和 B 都調用同一個 DLL,而 A 需要的版本為 1.0.2,B 程序要用不同的版本,將其替換成了 1.0.3 版本。這樣就勢必會對應用 A 造成影響,要么出現兼容性問題,嚴重點甚至導致應用崩潰或藍屏問題。 微軟祭出WinSxS解決方案 從 Windows XP 系統開始,「組件存儲」功能被正式啟用,每個組件(包括 DLL、OCX 和 EXE)都會存儲于這個被命名為 WinSxS 的目錄中,這里會存放應用程序需要調用的不同版本 DLL,并根據需求加載正確的版本。 那問題又來了,一個應用程序如何知道它需要加載什么版本的 DLL 呢?這就需要「manifest」文件來發揮作用了,該文件包含了一些設置,用于告知操作系統在應用啟動時如何處理,以及正確的 DLL 版本。 每個組件都帶有唯一標識的名稱,該名稱可以包括:處理器架構、語言、版本和 ID,然后這些組件的特定版本被收集在一起,成為軟件包,被 Windows Update 和 DISM 用來保持系統的最新狀態。 WinSxS文件夾和硬鏈接硬鏈接在整個 Windows 操作系統中都有廣泛使用,就 WinSxS 而言,這是「組件」駐留在系統中的唯一位置,而「組件存儲」之外的所有其他文件實例都是硬鏈接到 WinSxS 文件夾中的。
當我們更新 Windows 系統時,如有新版本的「組件」發布,就會通過硬鏈接的方式將其映射到操作系統層面,而舊版本的「組件」依舊會保存在「組件存儲」中,以確保可靠性(會取消硬鏈接),這樣就可以在出問題時進行回滾。 為了證實這一點,我們可以來做一個小實驗: 1在「開始」菜單中搜索?cmd?——找到「命令提示符」——選擇「以管理員身份運行」 2例如,如果我要查看名為?audiosrv.dll?的系統文件的硬鏈接,就可以執行: fsutil hardlink list "C:\Windows\System32\audiosrv.dll" 由此就以看出其在 WinSxS 組件存儲中的映射路徑。 WinSxS的重要性WinSxS 組件存儲的重要性不言而喻,它在支持自定義和更新 Windows 功能方面起著至關重要的作用,它可以幫助實現:
WinSxS文件夾大小Windows 系統的一大優勢就在于它可以兼容一些較舊的硬件和應用程序,但這種兼容性是以占用磁盤空間和報錯為代價的。而 WinSxS 組件存儲中就包含了所有必要的文件,以維持住 PC 對硬件和軟件的兼容性。 目測我系統中的 WinSxS 文件夾占用了 7GB 左右的磁盤空間,但由于「文件資源管理器」不考慮硬鏈接,這其實是一個虛值。
如何查看WinSxS文件夾的真實大小1在「開始」菜單中搜索?cmd?——找到「命令提示符」——選擇「以管理員身份運行」 2執行以下命令進行查看: Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore 分析完成后,我們就可以看到「組件存儲」的實際大小。
減小WinSxS文件夾大小的方法很多用戶經常會問,能不能手動刪除 WinSxS 文件夾中的文件?甚至有人問能不能刪除 WinSxS 文件夾?答案是——絕對不行! 如果你以這種搞事情的方式來刪除其中的文件,很可能會損壞 Windows 功能,輕一點可能會讓 Windows Update 無法正確安裝、卸載更新,即便你成功地從 WinSxS 文件夾中刪除了文件,也不知道是否哪個應用程序就會鬧出幺蛾子。 但是我們可以通過 Windows 內置的一些工具,以專業而優雅的方式來減小 WinSxS 文件夾的大小,以達到網友們所期望的清理、壓縮和瘦身等效果。 方法1:使用「磁盤清理」工具1在「開始」菜單中搜索?磁盤清理?——找到并打開「磁盤清理」工具 2在下拉列表中選擇系統盤——點擊「確定」——在打開的工具界面中點擊「清理系統文件」按鈕 3勾選上所有對勾進行清理即可 方法2:移除一些不用的Windows功能把一些普通用戶不常用的 Windows 功能,如:Print to PDF、Hyper-V、PowerShell 和Windows 沙盒等功能給干掉,同樣可以達到給 WinSxS 瘦身的效果: 1使用?Windows + R?快捷鍵打開「運行」—— 執行?appwiz.cpl?打開添加刪除程序
2點擊左側的「啟用或關閉 Windows 功能」 3.取消勾選不用的功能——點擊「確定」按鈕 方法3:使用DISM進行組件清理其實從 Windows 8 開始,操作系統中就內置了一個自動執行 WinSxS 組件存儲清理的任務計劃。
當然我們也可以手動使用 DISM 命令進行組件清理: 1在「開始」菜單中搜索?cmd?——找到「命令提示符」——選擇「以管理員身份運行」 2手動執行以下命令: DISM.exe /online /Cleanup-Image /StartComponentCleanup 使用?/Cleanup-Image?參數可以立即刪除之前版本的組件,沒有 30 天寬限期也沒有一小時的超時限制。 DISM.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase 增加?/ResetBase?參數可以刪除每個組件的所有被取代版本,也將無法卸載任何當前的更新。 Windows操作系統對硬件支持良好。 |
溫馨提示:喜歡本站的話,請收藏一下本站!