MSIX 支援 Windows 10 與 Windows 11,但並非所有功能都同時具備。 Windows 11 引入了多項功能,但尚未回溯移植,且部分 Windows 10 的錯誤仍未解決。 本頁幫助你了解哪些方案在哪裡有效,讓你在需要支援 Windows 10 時做出明智的封裝決策。
這很重要
Windows 10 主流支援於 2025 年 10 月 14 日結束(所有非 LTSC 版本)。 Windows 10 LTSC 2021 支援至 2027 年 1 月 12 日。 如果你的目標族群仍在使用 Windows 10,請做好規劃——舊版 Windows 10 不太可能修正功能錯誤。
功能比較:Windows 10 與 Windows 11
下表比較了最新 Windows 10 版本(22H2,與 21H2 相同功能支援)與 Windows 11 之間的 MSIX 功能可用性。
| Feature | Windows 10(22H2) | Windows 11 |
|---|---|---|
| 核心 MSIX 安裝與卸載 | ✅ | ✅ |
應用程式安裝檔(.appinstaller)支援 |
✅ | ✅ |
| 側載(非商店安裝) |
✅ 需要 AllowAllTrustedApps 政策或開發者模式 |
✅ 預設啟用 |
| MSIX 中的 Windows 服務 | ✅(需Windows 10 2004+版本) | ✅ |
| 帶有外部位置的套件(稀疏套件) | ✅(需Windows 10 2004+版本) | ✅ |
| 託管應用程式 | ✅(需Windows 10 2004+版本) | ✅ |
| 套件完整性強制執行(非商店) | ✅(需Windows 10 2004+版本) | ✅ |
| 彈性虛擬化 | ✅(需Windows 10版本 21H1+) | ✅ |
| 啟動選單群組 | ✅(需Windows 10版本 21H1+) | ✅ |
| 修改套件 | ✅ | ✅ |
| 套件支援架構 (PSF) | ✅ | ✅ |
| 共享套件容器 | ❌ 僅限 Windows 11 | ✅ |
| 舊有的右鍵選單支援(Shell 擴充功能) | ❌ 僅限 Windows 11 | ✅ |
| 可變套件目錄 | ❌ 僅限 Windows 11 | ✅ |
| MSIX 持久性身份(重新安裝後依然存在) | ❌ 僅限 Windows 11 | ✅ |
| 動態相依性 |
✅ 透過 Windows 應用程式 SDK 動態相依 API(Mdd* / bootstrapper)在支援的 Windows 應用程式 SDK 版本上;❌ 作業系統原生 API |
✅ 透過 Windows 應用程式 SDK,作業系統的原生 API 在 Windows 11 版本 22H2+ 中可用。 |
欲了解所有Windows 10版本的完整版本分類,請參見 MSIX 功能與支援平台。
僅限 Windows 11 的功能
若您的應用程式使用以下任何功能,則無法在 Windows 10 上運作:
共享套件容器
共享套件容器允許多個封裝應用程式共享一個套件命名空間,讓它們能共享資料和設定。 此功能需要 Windows 11。
Windows 10替代方案: 在 MSIX 容器外使用共享的 Win32 資料位置(例如 %ProgramData% 或命名管道),或將應用程式重新組織為單一套件中的相關套件。
舊版上下文選單支援
Windows 11 新增了對 MSIX 封裝的 Shell 擴展功能(右鍵功能表)註冊的支援,這些擴展功能會出現在經典的右鍵選單中。 這主要適用於將舊有桌面應用程式轉換到 MSIX 時。
Windows 10 替代方案: 使用套件支援框架(PSF)或透過 Windows 10 上的獨立 Win32 安裝程式提供右鍵選單擴充。
可變套件目錄
可變套件目錄允許應用程式寫入安裝位置內的子目錄,而非虛擬化容器。 需要 Windows 11。
Windows 10 替代方案: 將資料寫入 ApplicationData.Current.LocalFolder (AppData\Local\Packages...\LocalState)或位於套件外部的某個位置。
MSIX 持續性身分識別
MSIX 持續身份確保應用程式的套件身份(家族名稱、發佈者等)在卸載與重新安裝後仍能保存。 在沒有它的情況下,當應用程式卸載時,LocalState 中的資料會被刪除。 需要 Windows 11。
Windows 10 alternative: 將持久性資料儲存在套件容器外——例如,存放在 %APPDATA%、%LOCALAPPDATA%(Packages 資料夾外),或資料庫存放在 %ProgramData%。
動態相依性
動態相依性允許已打包的應用程式在執行時依賴那些未在打包時宣告的框架套件。 這就是 Windows 應用程式 SDK 支援未封裝應用程式的機制。 Windows 應用程式 SDK 動態相依 API(包括 Mdd* API 與 bootstrapper flow)在 Windows 10 和 Windows 11 中,凡支援 Windows 應用程式 SDK 的版本均受支援。 在 Windows 11、22H2 及以上版本中,也提供獨立的作業系統原生動態相依實作。
Windows 10 指引: 使用Windows 應用程式 SDK動態相依 API 或 bootstrapper 來處理Windows 10上的相依性解決——不需要任何變通方法。
Windows 10 專用考量
側載政策
在 Windows 10 2004 及以後版本中,簽名的非 Store MSIX 套件通常可雙擊安裝,無需另行啟用側載功能。 在較舊的 Windows 10 版本(2004 年前)中,側載必須透過開發者模式或 AllowAllTrustedApps 群組政策啟用。
例外情況不論 Windows 版本:未簽署套件需額外信任設定,企業管理裝置可透過政策限制或停用非 Store 應用程式安裝。
在 Windows 11 上,側載預設已啟用於已簽名的標準套件,但仍需遵循相同的政策限制。
LTSC 2021 功能限制
Windows 10 LTSC 2021(版本號 19044,相當於 20H2)缺少了 Windows 10 21H1 及之後版本新增的功能:
| Feature | LTSC 2021 | Windows 10 21H1+ |
|---|---|---|
| 彈性虛擬化 | ❌ | ✅ |
| 啟動選單群組 | ❌ | ✅ |
如果您的企業部署目標是 LTSC 2021,請不要依賴彈性虛擬化或封裝的開始選單群組。
Windows 10 未解決的錯誤
部分 Windows 10 上報告的 MSIX 問題尚未回溯移植,且由於 Windows 10 已停止支援,這些問題不太可能被修復。 如果您在 Windows 10 上遇到與 Windows 11 不同的 MSIX 行為,請檢查 microsoft/msix-packaging 倉庫中的開放問題。
已知的 Windows 10 特定問題常見類別包括:
- 登錄虛擬化邊緣案例
- 應用程式安裝程式在特定網路配置下的可靠性
- 封裝工具與某些安裝程式類型的相容性
適用於 Windows 10 的打包工具
如果你正在為 Windows 10 打包應用程式並遇到工具相容性問題,幾個社群打包工具提供額外的相容性解決方法:
- MSIX 封裝工具 (Microsoft) — 官方工具;積極維護中
- Advanced Installer — 具備強大Windows 10 MSIX 支援及良好相容矩陣的商業工具
- Conveyor — 社群工具,自動化多個目標的包裝,包括 MSIX;如果你也在 macOS 或 Linux 上出貨,這很有用
這些工具可以在建構過程中處理一些 Windows 10 的特殊情況,但在執行時期的作業系統限制(例如僅限於 Win11 的 API 缺失)無法在包裝過程中解決。
建議
如果你需要支援 Windows 10:
- 避免限於 Windows 11 的功能 — 如果你的 MinVersion 針對 Windows 10,請不要使用共用套件容器、可變套件目錄、持久識別或動態相依。
- 在你的 MSIX 清單中,將
MinVersion元素的值設定為你打算支援的最舊的 Windows 10 版本 。 - 專門測試Windows 10——Windows 10與Windows 11之間的行為差異很少在僅使用Windows 11的CI管線中被發現。
- 規劃你的 Win10 生命週期終止策略 — 隨著主流 Windows 10 支援已結束,請考慮制定路線圖,以便在未來的應用程式版本中要求使用 Windows 11。
相關內容
- MSIX 功能與支援平台 — 完整版本相容表
- 為您的Windows應用程式選擇分發路徑
- Windows應用程式發行功能的現況
- 套件支援框架概述
- Inside MSIX 部落格 — Microsoft MSIX 工程團隊深入探討 MSIX 架構與內部結構