日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/4 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 MSIX 打包 DotNetCore 3.0 客户端程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何你希望你的 WPF 程序能夠以 Windows 的保護機制保護起來,不被輕易反編譯的話,那么這篇文章應該能幫到你。

介紹

MSIX?是微軟于去年的?Windows 開發(fā)者日峰會 上推出的全新應用打包解決方案。其目的是取代舊式的軟件打包方式,可用于 Win32、WindowsForm 、 WPF 和 UWP 等應用程序,該打包方式將支持 Windows7 和 Windows8.x。并且讓我們的程序不會輕易反編譯。

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

使用

我們打開 VS2019,新建一個基于?DotNetCore 3.0 的 WPF 項目。當然,你也可以使用 CLI 來進行創(chuàng)建,命令為 dotnet new wpf

接著,我們在當前的解決方案中創(chuàng)建一個?Windows Application Packaging Project 項目,如下圖所示:

然后,設置我們的項目名稱,如下圖所示:

最后,點擊?crate 。此時會彈出一個窗口,讓你選擇你的程序包運行的目標版本和最低版本,這里我們按需選擇即可,我的選擇如下圖所示:

項目創(chuàng)建完畢后,項目中會有如下文件:

  • xxx.pfx:程序包證書,這個對于每個發(fā)布包都是必須的;

  • Package.appxmanifest:程序包的一些信息,包括應用程序的設置、系統(tǒng)權限訪問的控制等,雙擊該文件可以進行設置;

熟悉 UWP 開發(fā)的朋友應該對這個項目內(nèi)容都很熟悉了,這里就不做過多解釋。

右鍵當前項目的?Application?項,然后會有一個?Add Reference 選項卡,點擊它,此時會出來一個列表,列出當前解決方案中,我們可進行打包發(fā)布的項目,如下圖所示:

這里,我們就選擇我們之前創(chuàng)建的一個 WPF 項目?WPF1,對它進行打包。

進行上述操作之后,我們可以嘗試右鍵該項目,選擇?Build 操作,如果不出意外的話,會出現(xiàn)如下圖的錯誤:

由于?MSIX?目前僅支持?DotNetCore 3.0 Self-Contained 的方式進行打包,這意味發(fā)布的包不僅包含我們的應用程序,還會包含完整的 .NET Core 運行時。這種方式可能會使我們的包更大,但是更顯著的優(yōu)點是我們可以部署到任何機器上,無論目標機器是否安裝了 .NET Core 3.0 的運行時,尤其是當你打算將你的程序通過 Microsoft Store 進行分發(fā)。所以我們需要解決上述說的問題。

右鍵我們的主程序項目解決方案文件?XX.csproj,在?PropertyGroup?節(jié)點下添加一個?RuntimeIdentifiers 節(jié)點,如下所示:

Copy

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

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>

<!--添加如下節(jié)點-->
<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
</PropertyGroup>

</Project>

修改完畢后,重新編譯我們的主程序。然后再選擇我們的打包程序,右鍵執(zhí)行 Deploy,可以成功的將我們的主程序部署到我們的自己機器上。

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

這里為我們的應用程序選擇?x64 架構。然后執(zhí)行 Create 即可。如果一切正常的話,會生成一個發(fā)布目錄。會出現(xiàn)如下圖所示的界面:

注:我們要依據(jù)我們的目標平臺來選擇正確的架構方式。如果執(zhí)行失敗,請確保你的架構方式選擇正確,不要選擇 Neutral 方式。

到時候,我們只需要將我們的這個發(fā)布目錄發(fā)布給目標用戶即可,同時,我們也可以將我們應用發(fā)布到應用商店。

總結(jié)

眾所周知,傳統(tǒng) WPF 程序如何直接打包發(fā)布時很容易被反編譯的。我們希望我們的軟件能夠被保護起來,不那么被反編譯,所以可以使用 MSIX 可以嘗試一下。

使用?MSIX 是一種更安全有效的發(fā)布方式,能夠確保我們的應用程序和客戶系統(tǒng)更加安全。這種方式的部署能將我們的應用程序以沙箱的方式運行,所以安裝和卸載都很干凈,不會出現(xiàn)各種反三觀的 流氓行為,如果我們的應用不走商店分發(fā)的話,我們也可以將我們的程序包發(fā)給用戶,然后通過使用微軟在應用商店提供的打包工具?MSIX Packaging Tool 來進行安裝我們的應用程序,同樣合適很方便的。

此外,我們也可以使用它來更新我們已經(jīng)發(fā)布的應用程序,感興趣的朋友可以參考文末相關鏈接,這里就不做介紹了。

相關參考

  • What is MSIX?

  • msix-packaging

  • Packaging-a-NET-Core-3-0-application-with-MSIX

  • MSIX Packaging Tool

  • Handling application updates with App Installer and MSIX in Windows 10 19H1

原文地址:https://www.cnblogs.com/hippieZhou/p/10679709.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結(jié)

以上是生活随笔為你收集整理的使用 MSIX 打包 DotNetCore 3.0 客户端程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。