淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

兩年前微軟公佈了 Windows 新的安裝格式 MSIX,試圖讓軟件安裝和卸載流程更輕便,更安全。

這個項目經過兩年的發展,已經基本可以使用,接任 EXE 也只是時間問題。


01

MSI, EXE 和 AppX


目前 Windows 系統常用的安裝格式有三種,MSI, EXE 和 AppX。

MSI 是 Windows 最基本的安裝格式,它使用微軟提供的標準安裝卸載界面,本質上 MSI 就是一個數據庫,其中包含,其僅包含該軟件的所有必要數據。

淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

安裝過程不會檢測該軟件是否已經存在於計算機,或者是否缺少什麼必備組件。不管怎麼它會直接覆蓋安裝路徑中的所有文件。

這種簡單粗暴的方式,非常適合無人值守的情況,驅動程序大多也是用 MSI 格式安裝。


EXE 格式大家最熟悉,EXE 安裝文件本質上就是一個可執行程序,所有 Windows 程序都是EXE格式。

淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

因為是程序,所以能實現更多功能,比如檢測已安裝項,允許自定義安裝路徑,檢測安裝缺失的必備運行庫,更「花裡胡哨」的安裝界面等等。

因為EXE 格式功能更豐富,用戶和開發者都喜歡用,反而比專門的安裝格式 MSI 更常見。


AppX 是 Windows 8 後推出的新安裝格式,大家可能沒見過這種使用這種格式的程序,其實它就是 UWP 應用。

淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

它繼承了 MSI 的優點,就像手機軟件的安裝過程一樣,幾乎沒有給用戶任何選項,它允許直接覆蓋升級,完全乾淨的卸載,Appx 程序運行在沙盒中,不能訪問其他應用內存、文件。

這個安裝格式之所以沒有火起來,主要原因還是對開發者太不友好,限制了軟件權限,封包AppX 格式還必須重寫。

並且 Windows 8 之前的版本都不能使用這個格式,這種出力卻沒有好處的事情沒人願意做。


02

MSI + AppX = MSIX


正如大家知道的,EXE 程序功能強大,但也因此被惡意程序和流氓軟件甚至病毒、木馬利用,EXE 在帶來便利的同時也給我們帶來極大的安全隱患。

APPX 相對 EXE 安全性有了質的提升,但又因為嚴苛的限制條件又傷害了開發者的利益,而無法傳播開。

MSI 又過於簡單,用戶和開發者都不喜歡用。

而 MSIX 結合了 MSI 和APPX 的優點誕生。

淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

從用戶的角度來看,MSIX 的安裝過程類似 MSI 文件,但在其背後的工作原理又類似 AppX 文件。

MSIX安裝器將支持所有的 Windows 文件格式,包括 Win32、WPF、WinForm 和 UWP。這樣開發者只要遵循 MSIX 封裝協議,將開發的應用程序封裝為 .MSIX 格式後發佈到Windows 10 應用商店,或其他網站,用戶下載後就可以根據自己實際需要自行選擇安裝方式。

淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

另外,現在的軟件有一個很大的毛病是「雜亂」,經常卸載軟件後還留下文件夾和註冊表。

使用 MSIX 安裝的程序都被放在類似「沙盒」的環境中,所有文件、註冊表都按規則存放(例如 AppData 文件夾),卸載時所有數據都會被刪除不會有殘留。

淘汰 .EXE 和 .MSI,Windows 新安裝文件格式 MSIX 學習

並且,MSIX 格式可以給用戶帶來前所未有的安全感。因為能夠使用的 MSIX 文件都必須要有受信任的根簽名,並且上傳到應用商店的軟件都需要經過微軟的審核。

其中可能也有微軟賺錢的「私心」,但確實為用戶帶來了不少好處。

不過,對於獨立開發者或資金不足的工作室,大概還是會使用免費的 EXE 格式。


為了促進開發者使用新的格式,微軟提供了非常簡便的 MSIX 轉換工具,開發人員可以直接將現有的 EXE、MSI 或 AppX 文件轉換為 MSIX 格式。

另外 MSIX 格式甚至可以在 Windows7,Linux 等平臺上直接運行!


MSIX 雖然好處多多,並且已經可以使用,但真正要普及開還需要很漫長時間,短期內(3-5年)還會以 EXE 為主。


分享到:


相關文章: