Windows Terminal 一直没有发布可以直接安装的二进制文件,想自行编译的时候,看到系统需求中包含体积巨大的 Visual Studio 和 Windows SDK,脑袋都大了。直接下载其他人编译好的安装包又不放心,那么就想个办法避免在本地环境编译吧。

1. 编译结果获取

首先想到 Azure DevOps,这个可以简单理解成微软提供的在线 CI 平台,写好编译文件就可以调用微软的自带所有编译环境的镜像直接在线编译,并生成二进制下载。这个服务可以使用 edu 教育账号免费使用,有 edu 邮箱的都可以用。我曾经使用这个编译过其他人久不更新的 MFC 项目。自己写一个 ,或者修改微软生成的 azure-pipelines.yml 即可。

那么就从 GitHub 上把微软的代码拿过来,再写个 pipeline 直接编译吧。这时注意到,GitHub 上的项目中,居然已经包含了写好的 pipeline。

想了想,微软写的东西当然自己也会用 Azure DevOps 啊。

接下来注意到,在 GitHub 仓库的 Readme 中,已经有 Azure Pipelines 的编译结果图标了。

单击图标,打开软的 DevOps 仓库,可见每次 push 代码都是会自动编译的。进一步分析发现,只有合并到 master 分支时会编译出二进制文件。

那么我们选择其中一个 master 分支的 CI job:

可以看到,右上角有 Artifacts 按钮,说明这个 CI 是会上传编译出来的二进制文件到服务器的。不清楚这三个有什么区别,我起初以为分别对应 x64、x86 和 arm64 的编译结果,但我下载第一个压缩包中,是包含了三个平台的编译结果的。压缩包很大,150多M,内容如下:

其中的 CascadiaPackage_0.0.1.0_x64.msix 就是我们要的二进制安装包。

2. 安装尝试

首先把系统调成开发者模式。

然后双击 msix 文件直接安装,发现安装失败,提示安装包没有签名。

一番搜索之后,发现如果使用 VS 在本机直接部署,VS 会自动帮你签名。如果使用 VS 命令行工具直接编译出来的结果,是没有签名的。

在 GitHub 仓库的一个 issue (https://github.com/microsoft/Terminal/issues/489#issuecomment-496170540)中有人提到,需要用 SignTool.exe 来为这个安装包签名。

3. 证书生成

签名首先需要一个证书。在这里我们直接自签发一个证书并添加信任就行了。参考刚才的 issue 中提到的脚本,打开管理员权限的 Power Shell ,并 cd 到 msix 安装包所在目录中,执行如下命令:

New-SelfSignedCertificate -Type Custom -Subject "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" -KeyUsage DigitalSignature -FriendlyName "WindowsTerminal" -CertStoreLocation "Cert:\LocalMachine\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")

此时会显示一个证书指纹,复制其中指纹并替换掉下面命令中的 C5C9D98CE9A23FB72C20B4D039876F3D93C3E1FF,同时修改命令中的密码。

  1. $password = ConvertTo-SecureString -String "随便设置一个密码" -Force -AsPlainText

  2. Export-PfxCertificate -cert "Cert:\LocalMachine\My\C5C9D98CE9A23FB72C20B4D039876F3D93C3E1FF" -FilePath WindowsTerminal.pfx -Password $password

  3. Remove-Item -Path "Cert:\LocalMachine\My\C5C9D98CE9A23FB72C20B4D039876F3D93C3E1FF"

此时当前目录会生成一个 WindowsTerminal.pfx 证书。双击之,安装到计算机存储的受信任人(Trusted People)目录中,中间会要你输入刚才脚本里设置的密码。

好了,证书搞定了。

4. 提取安装签名工具

下面使用 SignTool.exe 工具进行签名。这个工具是 Windows 10 SDK (https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) 中的一个工具。去微软网站查看发现,这货体积巨大,包含了许多开发 Windows 所需的工具包。但我们并不需要其他的部分,所以这里投机取巧一下,只安装所需的部分。

首先要下载 ISO 格式的安装镜像,不要直接下 Installer。大概 800M 左右,半夜直连下载速度飞快,白天就不行了,视情况使用更加科学的上网方式。

下好之后,使用 Windows 自带的 Mount 功能映射为虚拟光驱。打开 Installers 目录,找到 WindowsAppCertificationKitx64-x86_en-us.msi 这个包,双击安装。

这个工具包就包含了我们需要的 SignTools.exe ,其他的部分不需要,可以删掉这个镜像了。在 C:\ProgramFiles(x86)\WindowsKits\10\AppCertificationKit\signtool.exe 路径可以找到我们需要的工具。

5. 签名安装

在 msix 和证书文件所在目录打开 cmd,执行以下命令完成签名:

  1. "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /fd SHA256 /a /f WindowsTerminal.pfx /p 你的密码 CascadiaPackage_0.0.1.0_x64.msix

签好后再双击 msix 包,就可以顺利安装了。

Enjoy!

不装 VS 自己编译安装 Windows Terminal相关推荐

  1. Win10企业版LTSC安装Windows Terminal

    由于win10企业版LTSC没有应用商店,如果需要安装windows terminal则需要单独安装,步骤如下:(适用于2019和2021版的LTSC) ① 打开设置-应用-可选功能-添加功能,搜索m ...

  2. Windows Store可以下载安装Windows Terminal (Preview)

    Windows Terminal (Preview)已经可以在Windows Store下载安装. Windows Terminal (Preview)运行要求为: Windows 10 版本 183 ...

  3. php空间搭建装网盘,编译安装Nginx和php搭建KodExplorer网盘

    编译安装Nginx和php搭建KodExplorer网盘 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2        php-5.5.38  ...

  4. linux windows 编译安装,Windows下编译安装OpenEXR(x86版本)

    由于最近需要用到一些关于OpenEXR的东西,需要在Windows安装相关的组件.经过一番尝试,发现需要以下步骤. 1)下载相关组件 在C盘下建立一个目录libs-x86,从OpenEXR官网http ...

  5. Windows下使用WSL安装配置Kali/Windows Terminal安装/Win-Kex安装配置(非虚拟机or双系统)

    Windows下使用WSL安装配置Kali/Windows Terminal安装/Win-Kex安装配置(非虚拟机or双系统) 最近因为某些原因含泪拾起自己很久没碰过的CTF,首当其冲是配置环境.首选 ...

  6. linux 终端工具 win10,win10下使用Windows terminal安装wsl子系统教程

    不少做计算机方向的朋友肯定遇到过有些软件或者环境需要Linux系统进行操作,这时候就必须在虚拟机里安装这些系统,打开时不方便不说,系统的流畅度也有很大的问题.一旦资源分配不均或者出现磁盘配置问题,也很 ...

  7. CUDA安装、配置Anaconda下的Tensorflow2.x环境、Windows Terminal添加Anaconda Prompt教程

    CUDA安装.配置Anaconda下的Tensorflow2.x环境.Windows Terminal添加Anaconda Prompt教程 时间: 2022/7/22 作者: Libra Jiang ...

  8. Windows Terminal 最新版安装和美化 以及scoop工具使用

    1. 安装Windows Terminal Windows Terminal开源仓库 安装 最简单的安装方法:直接在Windows应用市场安装.点此直达 检查 powershell 版本 C:\Use ...

  9. Windows Terminal完整指南

    原文:Windows Terminal: The Complete Guide:https://www.sitepoint.com/windows-terminal/ From:https://zhu ...

最新文章

  1. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
  2. [Linux网络编程学习笔记]套接字地址结构
  3. python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库
  4. 《Python游戏编程快速上手》第十一章猜数字,推理游戏Bagels
  5. 【Linux系统编程】线程堆栈大小的使用介绍
  6. Java 8 Lambda 表达式被编译成了什么?
  7. HTML复古游戏官网模板
  8. ECCV2018 论文简析 Oral_1 持续更新
  9. 美团提出具有「位置编码」的Transformer,性能优于ViT和DeiT
  10. phpcms2008的表单向导实现简单的问答功能
  11. 谷歌Chrome浏览器开发者工具教程—JS调试篇
  12. 解析UML的要点与应用
  13. Introduction to Conditional Random Fields
  14. 水经注地图发布服务中间件服务配置功能说明
  15. 0.96寸OLED12864显示屏设计方案(原理图+PCB+BOM表+程序)
  16. 3A算法—自动曝光(AE)
  17. 类的继承——cancas绘制五彩小球
  18. 拿图就走系列之《深入理解java虚拟机》
  19. 电商订舱哪家靠谱 广州力其
  20. 央行根据LPR调整房贷利率,看看你的房贷算法如何变化

热门文章

  1. 停止抱怨英语_停止抱怨垂直视频
  2. 《Apache Kafka实战》读书笔记-调优Kafka集群
  3. 构建iscsi网络存储服务
  4. 13.ThreadPoolExecutor线程池之submit方法
  5. Bitcoin比特币与BlockChain区块链技术
  6. 使用 HP 3PAR Peer Persistence 实现 vSphere Metro Storage Cluster (vMSC)
  7. 当前联机日志损坏恢复
  8. python实例32[简单的HttpServer]
  9. [笔记].STM32 BOOT[0:1]启动设置
  10. Prism+WPF使用DependencyInjection实现AutoMapper的依赖注入功能