在很土豪的微软免费给大家提供 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 包

GitHub Action 新上线 WPF .NET Core 自动构建模板的更多相关文章

  1. 用Docker自动构建纸壳CMS

    纸壳CMS可以运行在Docker上,接下来看看如何自动构建纸壳CMS的Docker Image.我们希望的是在代码提交到GitHub以后,容器镜像服务可以自动构建Docker Image,构建好以后, ...

  2. 再探CI,Github调戏Action手记——自动构建并发布到另一仓库

    前言 接上文初探CI,Github调戏Action手记--自动构建并发布 在学习了Action的基本操作之后 接着我们来探索Action其他可能的功能 众所周知 只有用得到的技术学习的才会最快 我也是 ...

  3. 两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库

    两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库 1.GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码.运行测试. ...

  4. 使用Github Action自动填写疫情通

    使用Github Action自动填写疫情通 西电晨午晚检一天三次,通过企业号功能进行填写.实际上,西电企业号大部分功能是以网页模式工作的,通过构造connection发送合适的request,设置计 ...

  5. 初探CI,Github调戏Action手记——自动构建并发布

    前言 最近在做脚本的说明文档时使用了vuepress这个东西 前端实在是菜,只能随便写写了 正常写完md文件之后推送至github做版本控制 而前端页面的生成则是在本地,部署也是在本地手工进行 一套下 ...

  6. hexo配合github action 自动构建(多种形式)

    已经使用HEXO正常构建GitHub页面 根据github action 给hexo配置自动部署github page 前往墨抒颖的个人网站查看纯净版 1. 为仓库设置访问密钥 第一步先生成密钥,打开 ...

  7. 使用GitHub Action进行打包并自动推送至OSS

    GitHub Action 是 GitHub 于 2018 年 10 月推出的一个 CI\CD 服务. 官方文档:https://docs.github.com/cn/actions CI\CD 持续 ...

  8. 你知道什么是 GitHub Action 么?

    本文是 GitHub Action 的入门教程,如您已有相关使用经验可以直接关掉. GitHub Action 是 GitHub 于 2018 年 10 月推出的一个 CI\CD 服务. 之前一直都是 ...

  9. CleanAOP实战系列--WPF中MVVM自动更新

    CleanAOP实战系列--WPF中MVVM自动更新 作者: 立地 邮箱: jarvin_g@126.com QQ: 511363759 CleanAOP介绍:https://github.com/J ...

  10. GitHub Action一键部署配置,值得拥有

    最近由于自己的个人应用增加,每次都需要在服务器手动发布,觉得特别麻烦,所以想通过代码控制自动发布,直接选择了GitHub Action. GitHub Action持续集成服务,目前已经免费开放使用, ...

随机推荐

  1. Unity中文字体获取

    Unity对中文字体支持较差,这里给出了几个可以使用的中文字体下载网站 后续会更新如何使用: 51Font -「免费字体发布平台」为您第一时间发布商用免费字体开源字体 (17font.com) fre ...

  2. Linux开发相关命令整理

    1. 反转shell 2. ldd 3. objdump 4. ldconfig 5. telnet 6. nc 7. netstat 8. ss 9. tcpdump 10. lsof 11. st ...

  3. es通过时间聚合查询一周中每天的数据平均值

    场景回顾:设备上传的数据保存在es中,大屏模块要统计本周的数据折线图(一个设备三分总上传一次,所以拟定每天聚合求个平均值) kibana查询请求 GET xxxx_2022-10/_search { ...

  4. Python字典遍历

    1 def dict_test(): 2 #初始化字典 3 dict= {"a1":"1","a2":"2"," ...

  5. 【已解决】linux---bash: 无法为立即文档创建临时文件: 设备上没有空间

    /dev/mapper/centos-root   17G   17G   48K  100% / 参考:https://www.cnblogs.com/rainbow-1/p/15391407.ht ...

  6. C++设计模式 - 策略模式(Strategy)

    组件协作模式: 现代软件专业分工之后的第一个结果是"框架与应用程序的划分","组件协作"模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用 ...

  7. 循环队列(LoopQueue)

    循环队列相比普通的队列,元素出队时无需移动大量元素. 代码 ArrayQueue.h 点它 代码清单 #ifndef C___LOOPQUEUE_H #define C___LOOPQUEUE_H # ...

  8. #后缀数组#洛谷 4051 [JSOI2007]字符加密

    题目 分析 将字符串复制一份放入末尾,将其后缀排序之后 SA数组既然表示排名为\(i\)的后缀的起始位置, 那么只要它在\([1,len]\)范围内就是合法的, 那么输出以这个位置开头长度为\(len ...

  9. vue-cli4,vue3打包后页面无内容

    这个问题百度了一下,各种各样的的回答都有,试了好多种方法,终于解决这个问题 解决方法: 1.在项目根目录下,新建  vue.config.js, 在文件中输入: module.exports = { ...

  10. Python smtp发送邮件怎么设置抄送人

    设置抄送人,非常简单,只需要添加一条信息就可以了,例: cc_list = ['xx@xxx.cn', 'xx@xxx.cn'] msg['Cc'] = ','.join(cc_list) smtp. ...