使用 MSIX 打包 WinForms 應用程式

MSIX 是微軟「新的」Windows 應用程式打包格式(其實已經出了一段時間了),WinForms, WPF, WinUI3 都支援,但是必須要在 Windows 10 version 1709 以上或是 Windows Server 2019 以上才支援,Windows 7 之類的就別想了,所以以 WinForms 或 UWP 這種可以在 Windows 7 上執行的應用程式來說,並不會首選使用 MSIX 打包。但是 MSIX 的優點就是安裝和移除都很簡單,不需要一直下一步,並且也支援自動更新,一定是未來的主流(除非微軟又推出新的格式...)。
本篇就來示範使用 MSIX 打包 WinForms 應用程式

在 WinForm 專案中在「方案總管」使用滑鼠右鍵點擊「解決方案」,選擇「加入」>「新增專案」:

找到這個 Icon 是一片吐司的「Windows 應用程式封裝專案」,就算上面的標籤是 UWP 而我們是 WinForms 也不要怕,直接點選「下一步」

這裡專案名稱很偷懶的直接命名為「Msix」,點選建立

在選擇目標和最低平台這裡直接確定就好,後面可以很方便的修改

在「方案總管」中,使用滑鼠右鍵點擊剛剛建立好的專案的「相依性」>「新增專案參考」

勾選 WinForms 專案,點選確定

在 MSIX 的應用程式封裝專案 > 相依性 > 應用程式 ,使用滑鼠右鍵點擊 WinForms 專案,點選「設為進入點」

使用滑鼠左鍵點兩下 Package.appxmanifest 檔案,在這個檔案中可以編輯安裝檔要顯示的資訊:

點選工具列的 Debug ,點選「組態管理員」

方案組態選擇 Release。假設我們要發佈 x64 的專案,在左側方案平台選擇 x64,點選下方 WinForms 專案的「平台」的下拉式選單,點選「新增」

新平台選擇「x64」,注意這裡「建立新方案平台」不要勾選,點選確定

這樣全部就都會是 x64 了。筆者在這裡嘗試很多次,如果兩個的「平台」不同,就算是「Any CPU」都會發佈失敗。

在發布前要點選工具列的「建置」> 重建方案:

使用滑鼠右鍵點擊 MSIX 專案 > 發佈 > 建立應用程式套件

這裡我們並沒有要上架 Microsoft Store ,我們只是要產生安裝檔,點選「側載」

為了讓其他電腦方便安裝,這裡要建立一個憑證,點選「建立」

因為是開發用的測試憑證,這裡只要填入發行者名稱和密碼就好

出現剛剛建立的憑證後點選下一步

剛剛建立的是 x64 ,這裡就要改為選擇 x64 ,點選建立

發佈完成後就可以點選「輸出位置」查看檔案:

檔案內容物如下:

安裝檔的副檔名是 .msixbundle,但是直接點選會無法安裝:

需要先安裝憑證 .cer

在筆者的測試中直接匯入憑證很常看起來會入成功,但是沒有成功,筆者覺得最好的方式是搜尋「管理電腦憑證(certificate)」

在「受信任的根憑證授權單位」點選滑鼠右鍵 > 所有工作 > 匯入:

找到剛剛的憑證檔案:

匯入完成後就可以安裝了:

要解除安裝也只要在開始選單中點選「解除安裝」即可:



參考資料:
Microsoft.Learn - What is MSIX?
Microsoft.Learn - Package a desktop or UWP app in Visual Studio
Microsoft.Learn - Set up your desktop application for MSIX packaging in Visual Studio

留言