当前位置: 移动技术网 > IT编程>开发语言>.net > 使用 MSIX 打包 DotNetCore 3.0 客户端程序

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

2019年04月18日  | 移动技术网IT编程  | 我要评论

西南大学育才学院教务系统,vista之家,博古开莱

如何你希望你的 wpf 程序能够以 windows 的保护机制保护起来,不被轻易反编译的话,那么这篇文章应该能帮到你。

介绍

msix 是微软于去年的 windows 开发者日峰会 上推出的全新应用打包解决方案。其目的是取代旧式的软件打包方式,可用于 win32、windowsform 、 wpf 和 uwp 等应用程序,该打包方式将支持 windows7 和 windows8.x。并且让我们的程序不会轻易反编译。

本文,我们将尝试如何使用 msix 来打包我们的 dotnetcore 3.0 wpf 应用程序。

使用

我们打开 vs2019,新建一个基于 dotnetcore 3.0 的 wpf 项目。当然,你也可以使用 cli 来进行创建,命令为 dotnet new wpf

接着,我们在当前的解决方案中创建一个 windows application packaging project 项目,如下图所示:

然后,设置我们的项目名称,如下图所示:

最后,点击 crate 。此时会弹出一个窗口,让你选择你的程序包运行的目标版本和最低版本,这里我们按需选择即可,我的选择如下图所示:

项目创建完毕后,项目中会有如下文件:

  • xxx.pfx:程序包证书,这个对于每个发布包都是必须的;
  • package.appxmanifest:程序包的一些信息,包括应用程序的设置、系统权限访问的控制等,双击该文件可以进行设置;

熟悉 uwp 开发的朋友应该对这个项目内容都很熟悉了,这里就不做过多解释。

右键当前项目的 application 项,然后会有一个 add reference 选项卡,点击它,此时会出来一个列表,列出当前解决方案中,我们可进行打包发布的项目,如下图所示:

这里,我们就选择我们之前创建的一个 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 来进行安装我们的应用程序,同样合适很方便的。

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

相关参考

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网