使用 MSIX 打包 DotNetCore 3.0 客戶端程序

如何你但願你的 WPF 程序可以以 Windows 的保護機制保護起來,不被輕易反編譯的話,那麼這篇文章應該能幫到你。git

介紹

MSIX 是微軟於去年的 Windows 開發者日峯會 上推出的全新應用打包解決方案。其目的是取代舊式的軟件打包方式,可用於 Win3二、WindowsForm 、 WPF 和 UWP 等應用程序,該打包方式將支持 Windows7 和 Windows8.x。而且讓咱們的程序不會輕易反編譯。github

本文,咱們將嘗試如何使用 MSIX 來打包咱們的 DotNetCore 3.0 WPF 應用程序。windows

使用

咱們打開 VS2019,新建一個基於 DotNetCore 3.0 的 WPF 項目。固然,你也可使用 CLI 來進行建立,命令爲 dotnet new wpf安全

接着,咱們在當前的解決方案中建立一個 Windows Application Packaging Project 項目,以下圖所示:bash

而後,設置咱們的項目名稱,以下圖所示:架構

最後,點擊 crate 。此時會彈出一個窗口,讓你選擇你的程序包運行的目標版本和最低版本,這裏咱們按需選擇便可,個人選擇以下圖所示:app

項目建立完畢後,項目中會有以下文件:工具

  • xxx.pfx:程序包證書,這個對於每一個發佈包都是必須的;
  • Package.appxmanifest:程序包的一些信息,包括應用程序的設置、系統權限訪問的控制等,雙擊該文件能夠進行設置;

熟悉 UWP 開發的朋友應該對這個項目內容都很熟悉了,這裏就不作過多解釋。ui

右鍵當前項目的 Application 項,而後會有一個 Add Reference 選項卡,點擊它,此時會出來一個列表,列出當前解決方案中,咱們可進行打包發佈的項目,以下圖所示:code

這裏,咱們就選擇咱們以前建立的一個 WPF 項目 WPF1,對它進行打包。

進行上述操做以後,咱們能夠嘗試右鍵該項目,選擇 Build 操做,若是不出意外的話,會出現以下圖的錯誤:

因爲 MSIX 目前僅支持 DotNetCore 3.0 Self-Contained 的方式進行打包,這意味發佈的包不只包含咱們的應用程序,還會包含完整的 .NET Core 運行時。這種方式可能會使咱們的包更大,可是更顯著的優勢是咱們能夠部署到任何機器上,不管目標機器是否安裝了 .NET Core 3.0 的運行時,尤爲是當你打算將你的程序經過 Microsoft Store 進行分發。因此咱們須要解決上述說的問題。

右鍵咱們的主程序項目解決方案文件 XX.csproj,在 PropertyGroup 節點下添加一個 RuntimeIdentifiers 節點,以下所示:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
    
    <!--添加以下節點-->
    <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
  </PropertyGroup>

</Project>

修改完畢後,從新編譯咱們的主程序。而後再選擇咱們的打包程序,右鍵執行 Deploy,能夠成功的將咱們的主程序部署到咱們的本身機器上。

此外,咱們能夠右鍵打包程序,點擊 Store 選項卡中的 Create App Packages。以下圖所示:

這裏爲咱們的應用程序選擇 x64 架構。而後執行 Create 便可。若是一切正常的話,會生成一個發佈目錄。會出現以下圖所示的界面:

注:咱們要依據咱們的目標平臺來選擇正確的架構方式。若是執行失敗,請確保你的架構方式選擇正確,不要選擇 Neutral 方式。

到時候,咱們只須要將咱們的這個發佈目錄發佈給目標用戶便可,同時,咱們也能夠將咱們應用發佈到應用商店。

總結

衆所周知,傳統 WPF 程序如何直接打包發佈時很容易被反編譯的。咱們但願咱們的軟件可以被保護起來,不那麼被反編譯,因此可使用 MSIX 能夠嘗試一下。

使用 MSIX 是一種更安全有效的發佈方式,可以確保咱們的應用程序和客戶系統更加安全。這種方式的部署能將咱們的應用程序以沙箱的方式運行,因此安裝和卸載都很乾淨,不會出現各類反三觀的 流氓行爲,若是咱們的應用不走商店分發的話,咱們也能夠將咱們的程序包發給用戶,而後經過使用微軟在應用商店提供的打包工具 MSIX Packaging Tool 來進行安裝咱們的應用程序,一樣合適很方便的。

此外,咱們也可使用它來更新咱們已經發布的應用程序,感興趣的朋友能夠參考文末相關連接,這裏就不作介紹了。

相關參考

相關文章
相關標籤/搜索