专栏首页林德熙的博客GitHub Action 新上线 WPF .NET Core 自动构建模板

GitHub Action 新上线 WPF .NET Core 自动构建模板

在很土豪的微软免费给大家提供 GitHub 的构建服务器受到了小伙伴们的一堆好评之后,微软最近推出了 WPF 的 .NET Core 版本的模板,可以快速上手 WPF 项目的自动构建,支持自动进行单元测试和打包,同时输出打包的文件

首先需要创建一个 WPF 项目,最简单的创建方法就是通过下面一句命令行

dotnet new wpf -o Foo

此时就创建了一个叫 Foo 的 WPF 项目了,接下来通过 VisualStudio 打开这个项目,咱现在准备放在 GitHub 上进行自动构建,然后打包一个UWP包出来

可以通过 VisualStudio 新建一个打包项目,这个打包项目就可以将 win32 应用打包为 UWP 包

暂时先使用测试的证书,创建测试证书的方法就是双击打包项目的 Package.appxmanifest 文件,点击打包,然后点击选择证书

点击创建然后输入名字点击确定就可以,请看下图

此时就创建了 Foo_TemporaryKey.pfx 证书文件,当然你的证书名应该和我不相同

在进行 GitHub 的 Action 构建的时候,需要将证书作为 base64 存放,存放在 GitHub 的凭据里面,这样能保持项目的安全

在使用 dotnet 的时候,有一个特别好用的功能叫 dotnet tool 通过这个功能,可以使用很多大佬写的工具,当然就包括了将文件转换为 base64 的工具啦

我上次告诉小伙伴,请他的 dotnet base64 项目添加文件的支持 https://github.com/Towmeykaw/dotnet-base64/issues/2 然后小伙伴很快就支持了这个功能,此时可以通过一句命令安装这个工具

dotnet tool install -g dotnet-base64

接下来就可以通过 base64 这个命令将文件转换为 base64 了,尝试进入到打包项目里面,假设打包项目的测试证书文件是 Foo_TemporaryKey.pfx 文件,那么输入下面代码就可以看到将证书文件转换为 base64 字符串

base64 -f Foo_TemporaryKey.pfx

当然,输出到控制台不是很好复制,使用下面代码可以让这个工具输出到文件里面

base64 -f Foo_TemporaryKey.pfx -o base64.txt

此时就可以拿到了 base64 文件了

打开 GitHub 的项目的设置,进入到 Secrets 页面

点击 Add a new secret 新建保密信息

此时输入 Base64_Encoded_Pfx 作为保密信息名,内容请填写刚才转换的 base64 的内容。此时填写的保密信息名将和创建的模板的内容相同,就不需要做更多的更改

点击添加,然后进入 Action 页面

此时可以看到新推出的 WPF 构建项目

点击 set up this workflow 按钮就可以进行创建,此时需要填写的内容如下

    env:
      Solution_Name: your-solution-name                         # 替换为解决方案名 如 MyWpfApp.sln.
      Test_Project_Path: your-test-project-path                 # 替换为测试项目的路径 如 MyWpfApp.Tests\MyWpfApp.Tests.csproj.
      Wap_Project_Directory: your-wap-project-directory-name    # 替换为相对于解决方案的打包项目文件夹 如 MyWpfApp.Package.
      Wap_Project_Path: your-wap-project-path                   # 替换为打包项目文件路径 如 MyWpf.App.Package\MyWpfApp.Package.wapproj.

替换完成之后点击 Start commit 就完成啦

等待打包完成之后,会自动上传到 artifacts 可以下载,下载的内容就是 UWP 包


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/GitHub-Action-%E6%96%B0%E4%B8%8A%E7%BA%BF-WPF-.NET-Core-%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%E6%A8%A1%E6%9D%BF.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大文件的存储和备份

    大概这个算法是现在世界上最好的存储算法之一,原因是他的论文发在 SCI 上,现在还没有人写出一个比他好的算法。

    林德熙
  • win10 uwp 依赖属性

    本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性的好处,只是简单告诉大家如何使用。

    林德熙
  • 在 P2P 文件分享应用以文件或文件段为单位的优缺

    在我用了好几个 P2P 文件分享应用之后,我对比了多个应用对资源的处理,可以看到基本上可以分为文件夹级的、文件级的和文件里面的一段段级的。本文将会告诉大家使用不...

    林德熙
  • [055][译]Architecture of SQLite

    本文档描述了SQLite库的体系结构。这里的信息对于那些想理解或修改SQLite内部工作的人很有用。 附近的图表显示了SQLite的主要组件以及它们如何进行互...

    王小二
  • POJ 1611 The Suspects(并查集)

           题意是爆发了SARS病毒,现在有许多个小组,只要小组里有一个人感染了病毒,那么这个小组都会有感染的嫌疑,所以让求的就是有感染嫌疑的人数,先输入n,...

    Ch_Zaqdt
  • leetcode 1029

    公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。

    ACM算法日常
  • Tool之Target Server(vx5)

    在《Tool之TargetServer(vx6)》里介绍了Workbench下如何启动TargetServer来连接WDB,今天看看Tornado里的操作

    Taishan3721
  • 高效细分:学习语义边界附近的下采样

    作者:Dmitrii Marin,Zijian He,Peter Vajda,Priyam Chatterjee,Sam Tsai,Fei Yang,Yuri ...

    空白的小飞机
  • Orion猎户座的继承者— Scorpius天蝎座

    时见疏星
  • vim 乱码问题解决及原理全面分析

    Vim有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding(这些选项设置请...

    后端技术探索

扫码关注云+社区

领取腾讯云代金券