在很土豪的微软免费给大家提供 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. Cesium之原生控件

    1. 控件概述 Cesium的开始,基本上是从new一个Viewer开始 // ... <div id="cesiumContainer"></div> & ...

  2. JDK8 ::用法(双冒号)

    JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下. List<String> lt = Arrays.asList(&q ...

  3. proteus之四状态锁定器

    proteus之四状态锁定器 1.实验原理 利用4071(或门)的锁定功能,当输入为1时输出结果锁定为1,使结果锁定在这个地方.4028(BCD译码器)将输入转化为输出,利用输出反馈到或门用于自锁. ...

  4. KingbaseES查找慢查询语句和阻塞会话

    在处理数据库性能问题时,识别和分析慢查询及阻塞会话是至关重要的步骤.数据库管理员和开发人员常常需要依赖特定的工具和查询语句来追踪这些性能瓶颈. 当数据库响应变慢或出现处理延迟时,第一步通常是查找那些执 ...

  5. 一篇文章了解CI/CD管道全流程

    从CI/CD过程开始,包含所有阶段并负责创建自动化和无缝的软件交付的一系列步骤称为CI/CD管道工作流.使用CI/CD管道,软件发布工件可以从代码提交阶段到测试.构建.部署和生产阶段在管道中移动和前进 ...

  6. Linux——ssh登录很慢解决方法

    1.背景 在同一机房中,有多台安装了CentOS 7操作系统的服务器,它们的配置除了IP地址不同外基本相同.这些服务器的资源利用率都不高,但在使用SSH连接时,发现有几台服务器连接速度较慢,可能需要等 ...

  7. #NTT,原根#洛谷 3321 JZOJ 4051 [SDOI2015]序列统计

    题目 分析 首先朴素dp方程 设\(dp[i][j]\)表示\(i\)个数的数列乘积为\(j\)的方案 那么\(dp[i][j*a[k]\bmod m]=itself+dp[i-1][j]\) 这可以 ...

  8. 两个专栏帮你搞定【图像拼接(image stitching)】

    [图像拼接论文精读]专栏:图像拼接论文精读 [图像拼接源码精读]专栏:图像拼接论文源码精读 前言 图像拼接(image stitching)是计算机视觉中的高级图像处理手段,是一个小众方向,研究的人很 ...

  9. 首届OpenHarmony竞赛训练营结营颁奖,75所高校学子助力建设开源生态

      由OpenAtom OpenHarmony(以下简称"OpenHarmony")项目群工作委员会和OpenHarmony项目群技术指导委员会主办的首届OpenHarmony竞赛 ...

  10. 深入理解 Spring IoC 和 DI:掌握控制反转和依赖注入的精髓

    在本文中,我们将介绍 IoC(控制反转)和 DI(依赖注入)的概念,以及如何在 Spring 框架中实现它们. 什么是控制反转? 控制反转是软件工程中的一个原则,它将对象或程序的某些部分的控制权转移给 ...