windows 4種安裝程序格式MSI,EXE、AppX和MSIX 功能及優(yōu)缺點詳細(xì)對比
一、Windows四種安裝程序格式:MSI,EXE、AppX和最新的MSIX優(yōu)缺點對比
Windows之前有三種常見的安裝程序格式 - MSI,EXE和AppX,都各有優(yōu)點和缺點
1、MSI是Windows最基本的安裝格式:比較簡單
MSI是Microsoft Installer的簡寫, 它使用微軟提供的標(biāo)準(zhǔn)安裝卸載界面,本質(zhì)上 MSI 就是一個數(shù)據(jù)庫,包含該軟件的所有必要數(shù)據(jù)。安裝過程不會檢測該軟件是否已經(jīng)存在于計算機,或者是否缺少什么必備組件,它會直接覆蓋安裝路徑中的所有文件。這種簡單粗暴的方式,非常適合無人值守的情況,驅(qū)動程序大多也是用 MSI 格式安裝。
特點
1)使用基本的安裝圖形用戶界面(GUI)安裝或卸載程序
2)沒有額外的或選項。
3)這個安裝程序是一組壓縮的安裝程序文件,包含該軟件的所有必要數(shù)據(jù)。
4)安裝過程不會檢測軟件是否已存在,或者是否缺少任何組件。
5)它可能會覆蓋安裝路徑中的任何文件。這種簡單性意味著管理員可以輕松實現(xiàn)全默認(rèn)安裝。
2、EXE安裝程序更普及
EXE 格式更普及,大家也最熟悉,EXE安裝文件本質(zhì)上就是一個可執(zhí)行程序,大多數(shù)Windows程序都是EXE格式。因為是程序,所以能實現(xiàn)更多功能,比如檢測已安裝項,允許自定義安裝路徑,安裝包語言,安裝密碼,打開網(wǎng)址,版權(quán)協(xié)議顯示,檢測安裝缺失的必備運行庫,以及更漂亮酷炫的安裝界面等等(Tmtony)。因為EXE 格式功能更豐富,用戶和開發(fā)者都喜歡用,反而比專門的安裝格式 MSI 更常見。大多數(shù)軟件開發(fā)者都喜歡直接使用Exe安裝程序。我之前做的不少共享軟件均使用Setup Factory 或InstallShield 生成這種安裝文件格式。
特點
1)安裝程序可以包括語言選項,附件,檢測以前的安裝(更新)等。
2)EXE安裝程序允許自定義安裝路徑并選擇要安裝的組件。
3)開發(fā)人員可以將Logo Banner添加到界面中,并包含軟件協(xié)議服務(wù)條款,并支持多語言。但是相對地exe安裝程序并不能全自動安裝。
3、AppX安裝程序用于通用Windows應(yīng)用程序
AppX 是 Windows 8 后推出的新安裝格式,很多網(wǎng)友可能沒見過這種使用這種格式的程序,它就是 UWP 應(yīng)用。
它繼承了 MSI 的優(yōu)點,就像手機軟件的安裝過程一樣,幾乎沒有給用戶任何選項,它允許直接覆蓋升級,完全干凈的卸載,Appx 程序運行在沙盒中,不能訪問其他應(yīng)用內(nèi)存、文件。這個安裝格式之所以沒有火起來,估計主要是對開發(fā)者太不友好,限制了軟件權(quán)限,封包AppX 格式還必須重寫。并且 Windows 8 之前的版本都不能使用這個格式,在還有很多電腦使用Win7 WinXp的情況下,很多程序員不太愿意使用它來分發(fā)程序(小辣椒高效office)。
1)它結(jié)合MSI安裝程序的一些優(yōu)點。它們是簡單,直接的安裝程序,為最終用戶提供的選擇很少。
2)它們允許從較舊版本的軟件到較新版本的更容易的升級路徑,并允許更簡潔地卸載。
3)AppX安裝程序還依賴于容器技術(shù),因此它們與操作系統(tǒng)的其余部分隔離以確保安全性。
遺憾的是MSX 或EXE安裝程序編寫的程序必須在AppX軟件包的幫助下重寫 或轉(zhuǎn)換,可能需要借助工具。AppX軟件包只能用于Windows 10,不適用舊版本。
4、MSIX結(jié)合了MSI和AppX的優(yōu)點及最佳性能
MISX文件格式集成了Windows之前的文件格式安裝技術(shù),并繼承了UWP的特性,更加安全和可靠,網(wǎng)絡(luò)帶寬優(yōu)化,磁盤空間優(yōu)化,程序自定義,并支持全部的Windows應(yīng)用程序,而且MSIX使程序可更干凈地卸載。MSIX將來可能會取代EXE、 WIN32、 WPF、WinForm和UWP
先說一下為什么會誕生MSIX:
1、EXE 程序功能強大,但容易被惡意程序和流氓軟件甚至病毒、木馬利用,它帶來便利的同時也給我們帶來極大的安全隱患。
2、MSI 過于簡單,用戶和開發(fā)者都不喜歡用。
3、APPX 對比EXE 安全性有了質(zhì)的提升,但限制條件較多又傷害了開發(fā)者的利益,而無法廣泛傳播。
所以MSIX應(yīng)運而生,MSI + AppX = MSIX , 結(jié)合了 MSI 和APPX 的優(yōu)點而誕生了。
從用戶的角度來看,MSIX 的安裝過程類似 MSI 文件,但在其背后的工作原理又類似 AppX 文件。
MSIX安裝器將支持所有的 Windows 文件格式,包括 Win32、WPF、WinForm 和 UWP。這樣開發(fā)者只要遵循 MSIX 封裝協(xié)議,將開發(fā)的應(yīng)用程序封裝為 .MSIX 格式后發(fā)布到Windows 10 應(yīng)用商店,或其他網(wǎng)站,用戶下載后就可以根據(jù)自己實際需要自行選擇安裝方式。另外國內(nèi)很多流氓安裝軟件經(jīng)常卸載軟件后還留下文件夾和注冊表。使用 MSIX 安裝的程序都被放在類似「沙盒」的環(huán)境中,所有文件、注冊表都按規(guī)則存放(例如 AppData 文件夾),卸載時所有數(shù)據(jù)都會被刪除不會有殘留。
能夠使用的 MSIX 文件都必須要有受信任的根簽名,并且上傳到應(yīng)用商店的軟件都需要經(jīng)過微軟的審核。所以MSIX 格式可以給用戶帶來更大的安全感,但這樣也可能需要簽名或?qū)徍耍赡苄枰o微軟支付費用或?qū)徍耍詫τ趥€人開發(fā)者或資金不足的軟件工作室,有可能還是會選擇免費的 EXE 格式,而不是馬上就遷移到MSIX格式。
另外 MSIX 格式甚至可以在 Windows7,linux 等平臺上直接運行!
特點
1)MSIX文件具有AppX的優(yōu)點,同時類似于MSI文件。它是一個直接的安裝程序,管理員甚至可以編寫自動“無人值守”安裝腳本。此外,它依賴于容器技術(shù),可以順利卸載和升級。
2)從用戶的角度來看,MSIX安裝類似于MSI文件,但實際上它更類似于AppX文件。此外,可以在Microsoft Store外部進(jìn)行MSIX分發(fā)。通過這個流程,可以更輕松地將舊程序引入并重新打包為MSIX。
3)MSIX最令人興奮的功能是微軟發(fā)布了一個SDK來增強跨平臺的兼容性。可以支持IOS,macOS,Android,Linux甚至是舊版本的Windows(如win7) 。開發(fā)人員在MSIX文件中放置特殊指令,以便識別操作系統(tǒng)以及采取的步驟。
這里:msix-packaging/tdf-guidance.md at master · microsoft/msix-packaging
早于Win10指定的版本 可試試這里的msix-core
https://learn.microsoft.com/zh-cn/windows/msix/msix-core/msixcore
MSIX SDK 為開發(fā)人員提供了一種將包內(nèi)容分發(fā)到客戶端設(shè)備的通用方式,而不管客戶端設(shè)備上的操作系統(tǒng)平臺如何。這使開發(fā)人員能夠一次打包他們的應(yīng)用程序內(nèi)容,而不必為每個平臺打包。里面有支持win7 和其它平臺,但這個沒有嘗試過,建議還是在win10或更高版本。
4)程序?qū)⒏蓛舻匦遁d:每次卸載軟件最讓人頭疼的是軟件卸載不干凈,使用MSI和EXE安裝程序時,該程序可以更改注冊表并在整個系統(tǒng)中創(chuàng)建文件和文件夾(小辣椒高效Office)。卸載程序時,這些文件和注冊表項經(jīng)常被忽略,導(dǎo)致卸載不干凈,久而久之大量的垃圾會拖慢電腦速度。使用MSIX,程序安裝在一個容器中,所有必需的文件都保留在該容器中,或遵循關(guān)于這些文件可能存在的位置的精確,可預(yù)測的規(guī)則(例如生活在AppData文件夾中)。卸載時,所有數(shù)據(jù)都與程序一致 - 不殘留任何文件。這意味著您的系統(tǒng)將更加清潔。
如果您正在查看MSIX文件并想知道它是否安全,那么您應(yīng)該問的第一個問題是您獲得安裝程序的位置。與任何其他程序安裝程序一樣,如果您不信任源,就不要打開它。在下載文件之前,確保文件是安全的。
二、后綴為 .msixbundle的msix文件怎么安裝?
Windows10/11 后綴是 .msixbundle的文件怎么安裝?
大家在下載軟件或者程序的時候,有遇到文件后綴是msixbundle的嗎
如壓縮軟件NanaZip的安裝包文件是
40174MouriNaruto.NanaZip_2.0.396.0_gnj4mf6z9tkrc.msixbundle
擴展名為 .msix(或msixbundle)的文件是Windows應(yīng)用程序安裝程序。微軟推出的MSIX作為EXE,MSI甚至AppX軟件包的替代品。
MSIX是新的Microsoft Installer ,不僅將其應(yīng)用于APPX中的UWP,而且還應(yīng)用于Win32,WPF和其他Windows安裝程序格式。MSIX需要Windows 10 1809及更高版本,所以低版本的系統(tǒng)需要先升級
在Windows 10中打開一個.MSIX 文件并開始安裝打包的應(yīng)用程序,只需雙擊該文件即可。但如果低版本win10會遇到安裝不了.MSIX的情況。
三、解決辦法
1、首先在Microsoft Store中搜索 應(yīng)用安裝程序,并安裝它

2.安裝后,再在msixbundle文件 右鍵菜單 選擇“安裝”

再單擊安裝即可。
3、很快就安裝好了

四、使用命令行方式安裝
在.msixbundle安裝包目錄下按住shift+右鍵空白處,點擊“在此處打開powershell 窗口(s)”
在命令行片 然后輸入 add-appxpackage .你的文件名 并回車。即可安裝安裝包。
如 add-appxpackage ./你的軟件名.msixbundle
如果文件的文件名過長,可直接按Tab鍵補全文件名,不用手動輸入了。
五、相關(guān)知識:什么是 MSIX
摘自:微軟官網(wǎng)
MSIX 是一種 Windows 應(yīng)用包格式,可以為所有 Windows 應(yīng)用提供現(xiàn)代打包體驗。 MSIX 包格式保留了現(xiàn)有應(yīng)用包和/或安裝文件的功能,此外,它還為 Win32、WPF 和 Windows 窗體應(yīng)用啟用了全新的現(xiàn)代打包和部署功能。MSIX 是一種 Windows 應(yīng)用包格式,可以為所有 Windows 應(yīng)用提供現(xiàn)代打包體驗。 MSIX 包格式保留了現(xiàn)有應(yīng)用包和/或安裝文件的功能,此外,它還為 Win32、WPF 和 Windows 窗體應(yīng)用啟用了全新的現(xiàn)代打包和部署功能。
MSIX 可使企業(yè)掌握最新信息,并確保其應(yīng)用程序始終保持最新狀態(tài)。 它使 IT 專業(yè)人員和開發(fā)人員能夠交付以用戶為中心的解決方案,同時通過減少重新打包的需求,來降低應(yīng)用程序的所有權(quán)成本。
關(guān)鍵功能
- 可靠性。 MSIX 提供可靠的安裝,在數(shù)百萬次安裝中,其成功率達(dá)到了引以為豪的 99.96%,并提供有保證的卸載體驗。
- 網(wǎng)絡(luò)帶寬優(yōu)化。 MSIX 只會下載 64k 大小的數(shù)據(jù)塊,可以減輕對網(wǎng)絡(luò)帶寬的影響。 此項優(yōu)勢是利用 MSIX 應(yīng)用包中的 AppxBlockMap.xml 文件來實現(xiàn)的(參閱下面的詳細(xì)信息)。 MSIX 旨在用于新式系統(tǒng)和云。
- 磁盤空間優(yōu)化。 使用 MSIX 時,不會在應(yīng)用之間復(fù)制文件,Windows 將跨應(yīng)用管理共享的文件。 應(yīng)用仍然彼此獨立,因此更新不會影響共享該文件的其他應(yīng)用。 即使平臺跨應(yīng)用管理共享的文件,也能保證干凈卸載。
亮點
- 將現(xiàn)有的 Windows 應(yīng)用打包。 使用 MSIX 打包工具可為任何舊式或新式 Windows 應(yīng)用創(chuàng)建 MSIX 包。 MSIX 打包工具簡化了打包體驗,提供交互式用戶界面或命令行來轉(zhuǎn)換和打包 Windows 應(yīng)用。
- 安裝 MSIX 應(yīng)用包。 使用應(yīng)用安裝程序可安裝或更新在本地或任何內(nèi)容分發(fā)網(wǎng)絡(luò)上提供的任何 MSIX 應(yīng)用包。
- 將運行時修補程序應(yīng)用于已打包的應(yīng)用。包支持框架是一個開放源代碼工具包,有助于在無權(quán)訪問源代碼時將修補程序應(yīng)用于現(xiàn)有桌面應(yīng)用,以便其在 MSIX 容器中運行。
- 隨時隨地使用 MSIX。 由于使用了開源 MSIX SDK,MSIX 包的用途更廣泛,并且不區(qū)分平臺。 該 SDK 提供在任何平臺(包括 Windows 10 平臺和非 Windows 10 平臺)上驗證和解包應(yīng)用包所需的全部 API。
訪問 MSIX 技術(shù)社區(qū)頁,獲取有關(guān) MSIX 的各種討論內(nèi)容和最新信息。 有關(guān) MSIX 的其他學(xué)習(xí)資源,請參閱此文。
MSIX 包的內(nèi)部
應(yīng)用有效負(fù)載
有效負(fù)載文件是生成應(yīng)用時創(chuàng)建的應(yīng)用代碼文件和資產(chǎn)。
AppxBlockMap.xml
包塊映射文件是一個 XML 文檔,其中包含應(yīng)用的文件列表,以及存儲在包中的每個數(shù)據(jù)塊的索引和加密哈希。 為包簽名時,將使用數(shù)字簽名來驗證和保護(hù)塊映射文件本身。 使用塊映射文件能夠以增量方式下載和驗證 MSIX 包,在安裝應(yīng)用文件后,還可以使用塊映射文件來支持對應(yīng)用文件進(jìn)行差異更新。
AppxManifest.xml
包清單是一個 XML 文檔,其中包含系統(tǒng)在部署、顯示和更新 MSIX 應(yīng)用時所需的信息。 此信息包括包標(biāo)識、包依賴項、所需功能、可視元素和擴展點。
AppxSignature.p7x
為包簽名時,將生成 AppxSignature.p7x。 在安裝之前,需要為所有 MSIX 包簽名。 借助 AppxBlockmap.xml,平臺可以安裝包,并可對平臺進(jìn)行驗證。
應(yīng)用容器的優(yōu)勢
使用 MSIX 打包的應(yīng)用在一個輕型應(yīng)用容器中運行。 MSIX 應(yīng)用進(jìn)程及其子進(jìn)程在該容器內(nèi)部運行,并使用文件系統(tǒng)和注冊表虛擬化進(jìn)行隔離。 所有 MSIX 應(yīng)用都可以讀取全局注冊表。 MSIX 應(yīng)用寫入到其自身的虛擬注冊表和應(yīng)用程序數(shù)據(jù)文件夾,卸載或重置應(yīng)用時會刪除此數(shù)據(jù)。 其他應(yīng)用無法訪問 MSIX 應(yīng)用的虛擬注冊表或虛擬文件系統(tǒng)。
六、自己制作Msix文件
可以下載MSIX Packaging Tool 制作試試,打枹后的文件會比較小
為了促進(jìn)開發(fā)者使用新的格式,微軟提供了非常簡便的 MSIX 轉(zhuǎn)換工具,開發(fā)人員可以直接將現(xiàn)有的 EXE、MSI 或 AppX 文件轉(zhuǎn)換為 MSIX 格式。
工具下載地址:https://docs.microsoft.com/zh-cn/windows/msix/
七、MSIX支持的平臺及在不同平臺的區(qū)別
下表顯示了不同版本的 Windows 支持哪些 MSIX 功能和方案。
Windows 桌面
| 功能 | Windows 10 1809 (LTSC 2019) | Windows 10 1903 | Windows 10 1909 | Windows 10 2004 | Windows 10 20H2 (LTSC 2021) | Windows 10 21H1 | Windows 10 21H2 | Windows 11 21H2 |
|---|---|---|---|---|---|---|---|---|
| 允許提升 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 應(yīng)用安裝程序文件支持 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 延遲注冊標(biāo)志 | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 強制從任何版本降級更新 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 強制預(yù)配 | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 打包桌面應(yīng)用的標(biāo)識 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 修改包 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 本機 MSIX 安裝和卸載 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 包支持框架 (PSF) | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| Windows 服務(wù) | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 非應(yīng)用商店包的包完整性強制實施 | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 對 Windows 應(yīng)用服務(wù)的支持 | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 共享包容器 | ? | ? | ? | ? | ? | ? | ? | ?? |
| 具有外部位置的包 | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 托管的應(yīng)用 | ? | ? | ? | ?? | ?? | ?? | ?? | ?? |
| 靈活虛擬化 | ? | ? | ? | ? | ? | ?? | ?? | ?? |
| “開始”菜單組 | ? | ? | ? | ? | ? | ?? | ?? | ?? |
| 舊上下文菜單支持 | ? | ? | ? | ? | ? | ? | ? | ?? |
| 可變包目錄 | ? | ? | ? | ? | ? | ? | ? | ?? |
| MSIX 持久標(biāo)識 | ? | ? | ? | ? | ? | ? | ? | ?? |
Windows Server 支持
| 功能 | Windows Server 2019 | Windows Server 2022 |
|---|---|---|
| 允許提升 | ?? | ?? |
| 應(yīng)用安裝程序文件支持 | ?? | ?? |
| 延遲注冊標(biāo)志 | ? | ?? |
| 強制從任何版本降級更新 | ?? | ?? |
| 強制預(yù)配 | ? | ? |
| 打包桌面應(yīng)用的標(biāo)識 | ?? | ?? |
| 修改包 | ?? | ?? |
| 本機 MSIX 安裝和卸載 | ?? | ?? |
| 包支持框架 (PSF) | ?? | ?? |
| Windows 服務(wù) | ? | ?? |
| 非應(yīng)用商店包的包完整性強制實施 | ? | ?? |
| 對 Windows 應(yīng)用服務(wù)的支持 | ? | ?? |
| 共享包容器 | ? | ? |
| 具有外部位置的包 | ? | ?? |
| 托管的應(yīng)用 | ? | ?? |
包格式支持
下表顯示了不同版本的Windows 10支持哪些包格式。
| 包格式 | Windows 10 (1809) | Windows 10 (1903) | Windows 10 (1909) | Windows 10 (2004) | Windows 10 (20H2) | Windows 10 (21H1) | Windows 10 (21H2) | Windows 11 (21H2) |
|---|---|---|---|---|---|---|---|---|
| .msix | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| .msixbundle | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| .appx | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| .appxbundle | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
重要
在 2004 Windows 10之前,必須啟用 Windows 應(yīng)用的旁加載,以允許在企業(yè)、教育和 LTSC SKU 上安裝非應(yīng)用商店 Windows 應(yīng)用。 默認(rèn)情況下,Windows 10 家庭版和專業(yè) SKU 已啟用旁加載 Windows 應(yīng)用。
Microsoft Store
下表顯示了不同版本的 Windows 10 支持哪些 Microsoft Store 功能。
| 功能 | Windows 10 (1809) | Windows 10 (1903) | Windows 10 (1909) | Windows 10 (2004) | Windows 10 (20H2) | Windows 10 (21H1) | Windows 10 (21H2) | Windows 11 (21H2) |
|---|---|---|---|---|---|---|---|---|
| 發(fā)布 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 更新通知 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| 流式安裝 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| Delta 匯報 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
備注
.appx 或 .appxbundle 適用于所有上面列出的Windows 10版本。 該表僅反映 .msix 或 .msixbundle 行為。
Microsoft Store 提交
MSIX 包支持的最低 OS 版本已在包清單文件中的 TargetDeviceFamily 元素內(nèi)以 MinVersion 形式列出。 例如,MSIX 包可以列出 MinVersion="10.0.17701.0" 為最低支持版本,這意味著 MSIX 包可以在此版本和更高版本的操作系統(tǒng)上運行。
Windows 10 版本 1709、1803 和 1809 支持主流的企業(yè)部署方案。 這包括通過 Microsoft Endpoint Configuration Manager、Microsoft Intune、PowerShell 或雙擊安裝進(jìn)行安裝。
目前,通過 Microsoft Store 和 適用于企業(yè)的 Microsoft Store 安裝 MSIX 需要Windows 10 版本 1809及更高版本。
非 Windows 平臺
MSIX SDK 是一個開放源代碼項目,允許開發(fā)人員在所有平臺上普遍使用 MSIX 包格式。 任何允許第三方生成插件或擴展的跨平臺客戶端應(yīng)用都可以使用 SDK。 客戶端應(yīng)用開發(fā)人員可以使用Windows 10平臺上提供的應(yīng)用擴展模型,并在非Windows 10平臺上(如 macOS、iOS、Android 和 Linux)上使用 MSIX SDK。
八、小結(jié)
MSIX 雖然很多優(yōu)點,并且在Windows各版本上已經(jīng)可以使用了,但真正全面普及估計還需要很漫長時間,因為要考慮程序員的習(xí)慣 意愿以及遷移的成本,另msix還需要簽名和微軟審核,短期內(nèi)安裝包還是以 EXE 為主。
希望本文對您有所幫助。也可收藏 點贊及關(guān)注我們






