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