人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng) > 硬件軟件教程 > 詳細(xì)頁面

為啥 Windows Installer 會(huì)需要如此多硬盤空間

為啥 Windows Installer 會(huì)需要如此多硬盤空間

更新時(shí)間:2023-07-07 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

Windows操作系統(tǒng)作為優(yōu)秀的操作系統(tǒng),由開發(fā)操作系統(tǒng)的微軟公司控制接口和設(shè)計(jì),公開標(biāo)準(zhǔn),因此,有大量商業(yè)公司在該操作系統(tǒng)上開發(fā)商業(yè)軟件。

有朋友問到 windows\installer 這個(gè)目錄下的內(nèi)容為什么占用如此多的硬盤空間,以及是否可以刪除的問題,搜索到這篇文章,感覺不錯(cuò),于是簡(jiǎn)單翻譯了一下發(fā)在這里,希望對(duì)大家有所幫助。

Windows Installer 是一個(gè)執(zhí)行事務(wù)型(Transactional)安裝的引擎。當(dāng)首次安裝一個(gè)產(chǎn)品時(shí),被安裝的文件中基本很少已經(jīng)存在于計(jì)算機(jī)中,甚至可能完全沒有。但當(dāng)升級(jí)或修補(bǔ)某一產(chǎn)品時(shí),則主要是對(duì)這些文件進(jìn)行替換,因此就必須將原始副本保存起來,以便在萬一遇到錯(cuò)誤時(shí)安裝程序可以進(jìn)行回滾。下文介紹了 Windows Installer 為什么需要這么多磁盤空間,以及相關(guān)文件都在哪里。

提取出的文件

由于多種原因,可能會(huì)需要引導(dǎo)程序(Bootstrap application)。引導(dǎo)程序可能會(huì)將安裝文件壓縮到引導(dǎo)程序本身內(nèi)部,或者連同安裝程序一起包含在一個(gè)自解壓存檔中。引導(dǎo)程序可能還需要直接從網(wǎng)站下載文件到磁盤上某個(gè)位置,或間接訪問互聯(lián)網(wǎng)上的文件緩存。

該位置通常位于 %TEMP%

如果提取程序未將這些文件刪除,在安裝結(jié)束后您可以自行刪除這些文件。然而要注意,某些安裝程序可能會(huì)將這些文件注冊(cè)為源緩存(Source cache)。如果源緩存被刪除,但由于某種原因需要提供源內(nèi)容,Windows Installer 可能會(huì)要求提供原始安裝文件,或直接導(dǎo)致產(chǎn)品安裝失敗。

?

臨時(shí)本地緩存

如果程序包中包含了完整用戶界面,并且該界面會(huì)被顯示出來,Windows Installer 就會(huì)在用戶的 %TEMP% 目錄下創(chuàng)建 .msi 或 .msp 文件的副本。如果這種安裝 – 即客戶端安裝 – 被提升了權(quán)限,則 %TEMP% 將使用進(jìn)行驗(yàn)證與授權(quán)進(jìn)行安裝的用戶的對(duì)應(yīng)位置。在 UI 階段內(nèi),Windows Installer 使用該副本計(jì)算初始磁盤空間需求,直到開始生成安裝腳本。

該副本是其他任何可能被提取到本地硬盤上的臨時(shí)副本的補(bǔ)充。也就是說,使用 msiexec.exe 或Windows Installer API 調(diào)用所引用的程序包會(huì)被使用 Windows Installer 生成的文件名復(fù)制到 %TEMP%,哪怕源副本已經(jīng)存在于 %TEMP%中。

該位置位于 %TEMP%

如果 Windows Installer 沒有刪除這些文件,在安裝結(jié)束后您可以自行將其刪除。

程序包緩存副本

無論是否顯示用戶界面,安裝工作的主要部分 – 也是唯一試圖修改計(jì)算機(jī)狀態(tài)的這一部分 – 都需要作為服務(wù)運(yùn)行。此時(shí),程序包 – 無論是從任何嵌入的文件中提取出的 .msi 文件,或整個(gè) .msp 文件 – 都會(huì)復(fù)制到位于 %WINDIR%\Installer 下的 Windows Installer 緩存中。如果安裝操作成功完成,該文件依然會(huì)保存在這個(gè)位置中,這是為了方便以后的維護(hù)性安裝,包括卸載產(chǎn)品時(shí)使用。補(bǔ)丁程序包將會(huì)被完整緩存,這也是為了將所有更新過的文件保存起來,方便以后進(jìn)行任何維護(hù)性安裝,例如修復(fù)或安裝后續(xù)補(bǔ)丁。

該位置位于 %WINDIR%\Installer

這些文件不能刪除,否則以后針對(duì)產(chǎn)品進(jìn)行的維護(hù)性安裝 – 甚至包括產(chǎn)品的卸載 – 都有可能失敗。

安裝腳本

Windows Installer 的安裝有兩個(gè)主要階段:生成安裝腳本,然后執(zhí)行安裝腳本。但因?yàn)?Windows Installer 是一種事務(wù)型安裝引擎,因此除非使用 DISABLEROLLBACK屬性或DisableRollback 系統(tǒng)策略禁用了回滾功能,否則還會(huì)生成用于對(duì)安裝操作進(jìn)行回滾的第二個(gè)腳本。

這些腳本包含了 Windows Installer 將在執(zhí)行腳本時(shí)所要進(jìn)行的全部操作。 回滾腳本實(shí)際上就是這些操作逆向排列后的產(chǎn)物。這些腳本可能會(huì)變得相當(dāng)大,通常這主要取決于產(chǎn)品本身的整體大小。作為一項(xiàng)優(yōu)化機(jī)制,Windows Installer 通常不會(huì)重復(fù)文件系統(tǒng)目錄和注冊(cè)表鍵,相反這種情況會(huì)分別調(diào)用 SetTargetFolder 或 RegOpenKey 操作,這些操作決定了后續(xù)的文件或注冊(cè)表值操作的范圍。此外還可以通過安排自定義操作執(zhí)行類似工作,這樣也可以減小磁盤空間需求。

這些腳本會(huì)創(chuàng)建到 C:\Config.Msi,其中 C: 是具有最多可用磁盤空間的本地驅(qū)動(dòng)器,但并不一定是系統(tǒng)盤本身。

這些腳本絕對(duì)不能刪除。當(dāng)安裝完成后,Windows Installer 會(huì)將其全部刪除,就算安裝操作需要重啟動(dòng)多次也會(huì)刪除。

目標(biāo)文件、注冊(cè)表值,以及其他預(yù)留的空間

在執(zhí)行安裝腳本時(shí),如果這些資源要復(fù)制任何文件,或許該任何注冊(cè)表值,都將需要占用一定的硬盤空間。在執(zhí)行 CostFinalize 操作時(shí),Windows Installer 會(huì)計(jì)算所需硬盤空間的總量。

這些資源會(huì)位于提權(quán)用戶,或最終用戶所選的目標(biāo)位置。

這些資源不能刪除;因?yàn)檫@些資源就是所要安裝的產(chǎn)品,刪除可能導(dǎo)致產(chǎn)品無法啟動(dòng),或無法正常運(yùn)行。如果任何資源被刪除,您可以使用控制面板中的添加或刪除應(yīng)用程序功能進(jìn)行修復(fù)。

用于回滾的文件副本

因?yàn)?Windows Installer 是一種事務(wù)型安裝引擎,因此如果現(xiàn)有文件將被覆蓋,Windows Installer 會(huì)對(duì)這些文件創(chuàng)建副本。這些文件會(huì)與安裝腳本一起,創(chuàng)建到一個(gè)臨時(shí)目錄中。這些文件并未被壓縮,所需存儲(chǔ)空間與這些文件被更新前占用的空間一樣大。回滾文件更主要是在對(duì)產(chǎn)品安裝補(bǔ)丁時(shí)創(chuàng)建,但并不僅限于安裝補(bǔ)丁時(shí)。任何產(chǎn)品還可以為其他產(chǎn)品升級(jí)文件,這種做法可以通過共享組件的方式進(jìn)行。

這些資源會(huì)被復(fù)制到 C:\Config.Msi,其中 C: 是具有最多可用磁盤空間的本地驅(qū)動(dòng)器,但并不一定是系統(tǒng)盤本身。

這些文件不應(yīng)刪除。當(dāng)安裝完成后,Windows Installer 會(huì)將其全部刪除,就算安裝操作需要重啟動(dòng)多次也會(huì)刪除。

用于補(bǔ)丁安裝和刪除的基準(zhǔn)(Baseline)緩存

Windows Installer 3.0開始支持補(bǔ)丁的卸載操作,為了提供更穩(wěn)妥的體驗(yàn),可以為現(xiàn)有文件應(yīng)用二進(jìn)制增量(Delta),而無需考慮現(xiàn)有文件可能所處的每個(gè)可能的狀態(tài)。也就是說,如果某個(gè)補(bǔ)丁是為了給 foo.dll 應(yīng)用二進(jìn)制增量,將 foo.dll v1更新為 foo.dll v2,那么補(bǔ)丁還需要針對(duì)安裝其他產(chǎn)品后可能更新到 foo.dll v3狀態(tài)這種情況做出一定的準(zhǔn)備,否則安裝操作將會(huì)失敗。

為了讓這些功能都盡可能可用,Windows Installer 會(huì)將要更新的文件復(fù)制到 %WINDIR%\Installer\$PatchCache$ 下每個(gè)產(chǎn)品所對(duì)應(yīng)的基準(zhǔn)緩存中。大部分情況下,當(dāng)任何一個(gè)版本的文件被首次替換時(shí),這個(gè)文件至少會(huì)存在兩個(gè)副本,因?yàn)?Windows Installer 會(huì)對(duì)原始(RTM)版本的文件保留一個(gè)副本,并為最近一次小型升級(jí)(通常是指“Service Pack”)的更新保存一個(gè)副本。

由于 Windows Installer 只將需要更新且將會(huì)被覆蓋的文件復(fù)制到基準(zhǔn)緩存中,因此某個(gè)文件的基準(zhǔn)緩存可能只存在于一個(gè)產(chǎn)品中,哪怕更新操作是由針對(duì)多個(gè)已安裝產(chǎn)品所安裝的補(bǔ)丁進(jìn)行更新的。因此在某些產(chǎn)品需要進(jìn)行更新時(shí),這樣的設(shè)計(jì)可能會(huì)導(dǎo)致要求提供原始介質(zhì)。Windows Installer 4.5 提供了一個(gè)功能可以解決該問題,這個(gè)功能會(huì)將共享的文件復(fù)制到所有安裝了該文件的產(chǎn)品的基準(zhǔn)緩存中 – 因此硬盤空間消耗還將進(jìn)一步增加。這種做法改善了服務(wù)(Servicing)操作,但代價(jià)是占用額外的硬盤空間。

這些文件以每個(gè)產(chǎn)品為基礎(chǔ),位于 %WINDIR%\Installer\$PatchCache$

這些文件可以刪除,或使用 MaxPatchCacheSize 策略禁用基準(zhǔn)緩存,但如果這樣做,當(dāng)需要卸載某一補(bǔ)丁,或者需要還原丟失的文件時(shí),如果程序可以顯示用戶界面,您會(huì)被要求提供源文件,否則安裝工作會(huì)直接失敗。

========這是分割線=====

在我個(gè)人的觀點(diǎn)來看,這里的內(nèi)容最好不要亂動(dòng),雖然需要占據(jù)一定的硬盤空間,但換回的是更好的可靠性,以及后續(xù)更方便的使用。

然而確實(shí)在某些情況下,由于一些程序安裝出錯(cuò)或其他原因,可能會(huì)產(chǎn)生一定的冗余文件,這種文件完全沒什么用,因此可以刪除。但也絕對(duì)不建議使用手工方式刪除。


Windows操作系統(tǒng)對(duì)硬件支持良好。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 霞浦县| 拜泉县| 会宁县| 霍邱县| 扶沟县| 饶河县| 乌拉特后旗| 六枝特区| 衡阳市| 禄丰县| 南通市| 保亭| 大余县| 滁州市| 丹巴县| 阿鲁科尔沁旗| 淄博市| 三江| 孝感市| 久治县| 韶山市| 治县。| 宾阳县| 华阴市| 文成县| 齐河县| 旬邑县| 酉阳| 札达县| 河北区| 四平市| 长泰县| 枣庄市| 尚义县| 太原市| 新竹县| 平武县| 光山县| 蛟河市| 土默特左旗| 洛隆县|