使用 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 来进行安装咱们的应用程序,一样合适很方便的。

此外,咱们也可使用它来更新咱们已经发布的应用程序,感兴趣的朋友能够参考文末相关连接,这里就不作介绍了。

相关参考

相关文章
相关标签/搜索