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