Windows 10 UWP 45 of N: MSIX 應用程式封裝工具 Part 3 - Windows Application Packaging Project

如何直接在 Visual Studio 2019當中直接打包封裝成 MSIX Package

前言

先前有介紹關於使用 MSIX Packaging Tool 的工具了,該工具適合的情境是在於沒有程式碼的情況下或是Packaging Project 不支援的格式的時候!那我們就來看看如何在Visual Studio 封裝成 MSIX的 Package!


開發環境:

  • Windows 10
  • Visual Studio 2019
    • Workload
      • UWP develop
      • .NET desktop develop

接著直接來看畫面八,下方是修改過的csproj!因為我直接使用上WPF和.NET 5.0的部分,所以加上判斷如果OS是 Windows_NT就可以編譯成 .NET5.0的 WPF app,而在非Windows 的系統上編譯就會變成一般的exe

csproj demo

接著要找到 Windows Application Packaging Project 的專案範本!如果有正確的 workload就要能夠找的到喔

Packaging project

建立好該專案就可以來看看該專案範本的一些細項設定,以下是專案範本預設的結構

這邊就可以看到重點是 Package.appxmanifest 以及 Applications!Applications就是可以讓那些應用程式加入到 MSIX Package之中,而Package.appxmanifest 就是跟UWP是一樣的設計。要加入可以做為進入點( Entry point ) 的使用MSIX的時候應用程式的進入點就只有一個所以如果需要啟動多個應用程式需要設計個launcher 來啟動其他應用程式。下圖就是把應用程式加入 Applications ,在Applicatinos 使用右鍵加入參考就會出現的畫面

以下是在加入個UWP的應用程式,並在MSIX Packaging project 的 Applications 右鍵加入參考的畫面 這樣然後可以一併把 Win32 app和 UWP app裝在同一個封裝之內!粗體的專案名稱就是預設進入點的應用程式

這樣設定好之後一樣像是 UWP的步驟進行 Publish (發佈)然後選擇 Create App Packages 就可以建立了 ~

這樣就可以建立MSIX的檔案了!

以 Debug的方式封裝的MSIX檔案,其中 MSIXBUNDLE就是把多個建置架構(X86 X64)的MSIX打包一起的。這邊基本上就是延續UWP的封裝規則

  • UWP
    • Appx (單一架構發佈
    • Appxbundle (多架構合併發佈
  • MSIX
    • MSIX (單一架構發佈
    • MSIXbundle (多架構合併發佈

而所謂的 Bundle檔案基本上就是ZIP拉~所以其實是交給OS的 App installer 來決定該裝置適合哪樣架構的應用程式進行安裝。


總結

如果是 Developer直接使用 新版本的 Visual Studio 就可以使用上 MSIX或是使用 MSIX Packaging tool 讓新的安裝格式把不論是舊版本的軟體或是新架構的軟體更加整合到 Windows 10的生態之中! MSIX以及MSIX Core 也是開源的專案,有興趣的朋友們可以去看看喔~ 下一篇來說明一下如何使用MSIX做Extension ( adds-on )的部分~

 

***以上Code以及說明都有可能隨著Windows 10 的版本以及Visual Studio 版本有所調整!***

參考資料 Microsoft Docs,Windows Blogs for developer

下次再分享Windows 10 的新技術拉~