⚡ 站長快讀:核心重點
- 文章屬性:科技冷知識 / 規格解析
- 核心結論:EXE MSI MSIX 差異的本質是「誰在管安裝這件事」——EXE 由開發者自己管、MSI 交給 Windows Installer 服務管、MSIX 交給 Windows 用容器管。
- 適用對象:所有會自己下載軟體、也好奇為什麼移除軟體總是留一堆垃圾的人
📌 快速答案
一句話答案:EXE MSI MSIX 差異在於封裝標準——EXE 是沒有統一規格的執行檔,MSI 是 Windows Installer 服務讀取的標準安裝資料庫,MSIX 則是微軟現行的容器化封裝格式,安裝前一律必須簽章。
🔍 故事的起點
你有沒有發現一件事:同一套軟體,官網上可能同時給你三個下載按鈕——Setup.exe、App.msi、App.msix。三個檔案裝出來的東西看起來一模一樣,但只要你曾經被「移除乾淨了嗎」這件事困擾過,就會知道它們差很多。
多數中文教學講到這裡就停在「MSI 比較乾淨、EXE 比較彈性」,可是沒人講為什麼。站長我這次直接翻微軟官方文件,把三種格式的機制差異、官方公布的可靠度數字,以及一個大部分人都誤會的觀念一次講清楚——EXE 根本不是一種安裝格式,它只是一層外殼,裡面包的東西可能就是 MSI。搞懂這三層關係,你以後看到下載頁的三個按鈕,就知道該點哪一個。
🧪 原理拆解
MSI:它不是程式,是一張「資料庫」
先破除最大的誤解:.msi 檔不能自己執行,它裡面沒有安裝邏輯,只有一張結構化的資料表——哪些檔案要放到哪、要寫哪些登錄檔機碼、要建立哪些捷徑。真正執行安裝的是 Windows 內建的 Windows Installer 服務,由 msiexec.exe 這個程式去讀這張表、照表操課。
因為安裝步驟被拆成標準化的資料,系統就能反向推導出「怎麼還原」。微軟官方文件寫明,Windows Installer 4.5 以後支援交易式處理(transaction processing):一批套件只要有任何一個裝失敗,或使用者中途取消,安裝程式可以回捲(roll back)全部變更、把電腦還原成原本的狀態——要嘛全裝、要嘛全不裝。這就是 MSI 給人「比較乾淨」印象的機制根源。
也因為是標準格式,MSI 的指令列參數才會全世界統一。以下是依官方 msiexec 語法組合的用法(可安全複製):
msiexec.exe /i "C:\example.msi" /qn /norestart/i 是安裝、/x 是移除、/qn 代表全程不顯示任何介面、/norestart 是裝完不要自動重開機。裝到一半失敗想知道原因,官方也給了記錄檔參數:
msiexec.exe /i "C:\example.msi" /L*V "C:\package.log"順帶一提,現在 Windows 內建的是 Windows Installer 5.0,自 Windows 7 與 Windows Server 2008 R2 起就隨系統附帶,官方明說 5.0 沒有單獨的再散發套件可以另外安裝——所以網路上叫你「去下載安裝 Windows Installer」的教學,對現行系統來說是無效資訊。
EXE:它不是格式,是一張包裝紙
這是本文最重要的一句話:EXE 不是安裝格式。.exe 就是 Windows 的可執行檔,一個 Setup.exe 裡面裝什麼、怎麼裝、裝到哪,完全由開發者自己寫死,沒有任何官方規格在管它。
實務上常見的 Setup.exe 其實是「啟動器(bootstrapper)」:它先幫你偵測系統版本、幫你補裝 .NET 或 VC++ 執行環境、讓你勾選要裝哪些元件、選語言,然後才把內含的 MSI 丟給 Windows Installer 去執行。所以「EXE 對上 MSI」這個比較本身就有點錯位——很多時候它們是包裝與內容物的關係,不是競爭關係。
彈性是它的優點,也是它的代價:因為沒有統一規格,靜默安裝參數各家都不一樣(有人用 /S、有人用 /silent、有人用 /quiet,還有人根本沒做),移除得乾不乾淨也全看開發者良心。企業 IT 最不愛 EXE,就是因為它無法用同一套指令批次部署。
MSIX:把 App 關進容器裡
.msix 是微軟現行主推的封裝格式。官方定義得很清楚:MSIX 會給每個 App 一組 package identity(套件識別),由「發行者 + 名稱 + 版本」組成,而這組識別是使用推播通知、背景工作、Windows AI API、Store 通路與 Intune 企業管理的前提。
它和前兩者最大的機制差異是容器化執行:App 跑在一個輕量容器裡,擁有虛擬檔案系統與虛擬登錄檔,Windows 會把某些檔案與登錄檔的寫入動作虛擬化或重導向。白話講,這個 App 以為自己在改系統,其實只是在改自己那份影子副本——所以移除時系統知道該刪哪些東西,不會有殘留。
官方也給了幾個很少被引用的硬數字:
- 安裝成功率 99.96%(以數百萬次安裝統計),且保證移除後不留檔案與登錄檔項目
- 差異更新只下載變動的 64 KB 區塊,不是整包重抓
- 套件內的
AppxBlockMap.xml為每個 64 KB 區塊記錄雜湊值,用來做完整性驗證 - 所有 MSIX 套件在安裝前一律必須經過簽章(
AppxSignature.p7x),沒有例外
最後一點是 MSIX 的雙面刃:安全性拉高了,但個人開發者要發布就得先處理憑證,這也是為什麼小工具至今仍大量以 EXE 流通。
相容性:MSIX 不是每台電腦都吃
這是實務上最容易踩雷的地方。依官方支援平台文件,MSIX 目前支援 Windows 10 1709 版以上、Windows Server 2019 LTSC 以上與 Windows Enterprise 2019 LTSC 以上;比 Windows 10 1709 更舊的系統要安裝 MSIX,得另外走 MSIX Core。
另外兩個坑:Windows Server 2019 LTSC 與 Enterprise 2019 LTSC 需要安裝 App Installer 才能雙擊安裝 .msix,否則只能透過 PowerShell、API 或系統管理工具部署;而在 Windows 10 2004 之前的 Enterprise、Education 與 LTSC 版本上,非市集來源的套件必須先開啟 sideloading 才裝得起來(Home 與 Pro 版預設就是開的)。
三種格式一次對照

| 比較項目 | EXE | MSI | MSIX |
|---|---|---|---|
| 本質 | 可執行檔,無統一規格 | Windows Installer 讀取的安裝資料庫 | 容器化的現代封裝格式 |
| 誰執行安裝 | 開發者自寫的程式 | 系統的 Windows Installer 服務 | Windows 部署引擎 |
| 靜默安裝參數 | 各家不同,無標準 | 統一用 msiexec /qn | 統一走 App Installer / PowerShell |
| 是否強制簽章 | 否 | 否 | 是,安裝前必須簽章 |
重點摘要:
- 要批次部署、要腳本化,選 MSI 或 MSIX,它們的指令是標準化的
- 在意移除殘留,MSIX 機制上最乾淨,MSI 次之,EXE 完全看開發者
- 舊系統或舊硬體,MSIX 有版本門檻,EXE 相容性反而最廣
- 看到
Setup.exe別急著下結論,它裡面很可能包的就是 MSI
💡 總結:冷知識延伸
站長我最喜歡拿來嚇人的一個冷知識是:你在「設定 → 應用程式」裡看到的移除清單,其實混了三套完全不同的帳本——MSI 那套由 Windows Installer 用元件參考計數在記,EXE 那套只是各家開發者自己寫進登錄檔 Uninstall 機碼的一行字串,MSIX 那套則由系統的套件儲存庫(package repository)管理。三套帳本各記各的,這就是為什麼有些軟體移除後清單裡還留著幽靈項目,而 MSIX 的 App 幾乎不會發生這種事。
實務上還有一個好消息:現在你不太需要自己判斷該下載哪個檔案了。Windows 內建的套件管理器 winget 會直接處理這三種格式,你只要一行指令,它自己去挑、自己靜默安裝——想省事的話,可以看看站長寫的〈用 WinGet + Sudo 實現軟體部署程式碼化〉,或者比較入門的〈Windows 11 用 Winget 秒裝軟體〉。搞懂格式差異是為了看懂它在幹嘛,不是為了每次都手動挑檔案。
❓ 常見問題
Q:那我到底該下載 EXE 還是 MSI?
一般個人使用者,官網主推哪個就用哪個,通常是 EXE,因為它會幫你把執行環境一併補齊。如果你要在多台電腦上批次安裝、或想寫成腳本,選 MSI,因為 msiexec 的參數是全世界統一的。
Q:MSIX 和 Microsoft Store 裡下載的 App 是同一種東西嗎?
機制上是同源的。依微軟官方說明,MSIX 整合了 MSI、.appx、App-V 與 ClickOnce 四者的特性,市集上架與更新通道正是需要 package identity 才能運作的功能之一。但 MSIX 不一定要走市集——透過 App Installer 就能從網頁直接安裝。
Q:為什麼有些軟體移除後,資料夾還留在那裡?
如果是 EXE 安裝的,移除程式是開發者自己寫的,他沒寫到要刪的東西就會留下。MSI 則是用元件參考計數判斷,共用元件被別的軟體占用時會刻意保留。只有 MSIX 因為容器化,官方才敢保證乾淨移除。
Q:.appx 和 .msix 差在哪?
.appx 是 MSIX 的前身,兩者在 Windows 10 1809 以後的系統都能安裝。新專案一律用 MSIX,.appx 只剩相容性用途。
🔗 延伸閱讀
- Microsoft Store 打不開、App 卡在下載?WSReset 到重新註冊全解法
- 輸入 Python 卻跳出 Microsoft Store?應用程式執行別名完整解說
- Windows 內建「系統資訊」(msinfo32) 完全查詢教學
📎 參考資料來源
📖 第一級|廠商官方:
- Microsoft Learn:What is MSIX? — 2026-08-21 查證
- Microsoft Learn:MSIX features and supported platforms — 2026-08-21 查證
- Microsoft Learn:Windows Installer — 2026-08-21 查證
- Microsoft Learn:msiexec 指令參考 — 2026-08-21 查證
⚠️ 本文核心事實以第一級為準;EXE 安裝檔因無官方規格,相關敘述為業界通行做法之整理,非官方定義。
📅 本文查證戳記:2026-08-21 依 Microsoft Learn 官方文件撰寫。格式規格若在後續版本變動,歡迎在留言區回報,站長會更新文章。
