黑科技抢先尝 - Windows全新终端初体验(附代码Build全过程)

版权声明:本文由博主bravo yeung(微信公众号dotnet匠人,知乎bravo yeung)原创。如需转载,请先通过私信获得博主许可,并在转载时附上原文网址http://blog.csdn.net/lzuacm。https://www./link/f7fd20e85e1f2ff831d2a744c4a07f70

在微软的build大会上,展示了

Windows Terminal
的强大功能。虽然官方宣布将在6月中旬通过
Microsoft store
发布,但我们还需等待一个多月。幸运的是,代码已在github上公开,因此我决定自己编译并体验一番。在此过程中遇到了一些问题,现将流程整理分享给大家。如果您发现了任何问题,欢迎指正。

官方视频如下:

https://www./link/0caa694ffbe5d4bc7a4f359989388fdb

将Windows 10升级到1903版本时,我尝试使用Windows 10更新助手(Windows 10 update assistant)进行升级,但只能升级到1809版本。然而,要编译github上的Microsoft terminal代码,必须使用

Windows 10
的1903版本。

如果不升级,解决了其他所有问题后,最终会遇到以下错误(错误代码

DEP 3321
):

幸运的是,我最近得知了一个工具网站MSDN,我告诉你,可以从那里下载到该版本的镜像。

关于版本选择,到底是选择Consumer版还是Business版呢?经大佬Edi Wang指点,我了解到以下信息:

如果您的Windows是家庭版,请选择

Consumer
版;如果您的Windows是专业版或企业版,请选择
Business
版。至于
ed2k://
资源的下载,您可以使用百度云盘的离线下载,也可以使用迅雷。

首先,需要安装

git for Windows
(https://www./link/3eec1ed838fd558428398779631b66a5。

Microsoft Terminal的github仓库地址是:

https://www./link/1ff655edaac1ca6a033c5290110d7a55

对应的克隆地址是:

https://www./link/1ff655edaac1ca6a033c5290110d7a55.git。

打开命令行,使用cd命令切换到您通常存储vs项目的路径(例如,我切换到

D:\Coding
)。

然后只需在

Git Bash
中输入以下命令即可:

git clone https://www./link/1ff655edaac1ca6a033c5290110d7a55.git

克隆完成后,可以进行下一步。

确保克隆仓库完成后,还可以使用以下命令克隆子模块:

git submodule update --init --recursive

接下来,安装VS 2019和.NET Core 3.0 SDK。首先安装vs 2019 professional或enterprise版本,github上的文档提到要编译Windows Terminal,必须勾选以下选项:

  • Desktop Development with C++
  • Universal Windows Platform Development
  • Windows SDK version 10.0.18362.0

然后安装.NET Core 3.0 SDK,这个过程比较简单,这里不再详述。

在vs的设置中,勾选.NET Core下的"Use preview SDK"(使用.NET Core SDK预览版),然后重启VS。

在vs 2019中打开Windows Terminal项目(对应文件夹

Terminal
)下的
OpenConsole.sln
。如果不勾选"使用.NET Core SDK预览版"直接编译,很可能会遇到以下错误:

重定解决方案目标在上一步中,用vs2019打开

OpenConsole.sln
时,系统会提示您将项目重新定位到v142。对于“Windows SDK版本”,请选择“10.0.18362.0”。将“Platform Toolset”设置为“Upgrade to v142”。

然后向下拖动,按下图设置:

设置完成后,点击最下方的OK。

当然,如果误点"取消",也可以通过右键点击整个Solution -> Retarget solution来设置:

在您尝试再次build之前,请确保您已经选择好与您的计算机匹配的编译平台(Solution Platform)。

不知道您一开始打开Solution

OpenConsole.sln
时编译平台和启动项目是什么样的,我的配置如下:

要正确地build,这里需要根据您电脑的实际情况来设置。例如,我的电脑是x64的,就配置如下:

否则会出现很多错误。

编译成功后,按

Ctrl + F5
运行项目。

与之前的Powershell有什么不同呢?按

Ctrl + T
后会出现一个菜单,同一个窗口中可以有多个Tab,其他功能暂时没有加入,等待正式版。此外,还多了一句话(见高亮部分):

尝试新的跨平台 PowerShell https://aka.ms/pscore6 

任务栏中相应的图标为:

Ctrl + T
后,右上角会出现一个以
+
开头的菜单。

但当您在菜单中切换到

cmd
时,视频中的酷炫效果就有一点出来的迹象了:

接下来,介绍一下如何在上面这个新的

cmd
中使用
Linux
命令,以我最熟悉的Ubuntu为例来介绍。

在Microsoft store中搜索到

Ubuntu
,然后购买并安装。这实际上就是WSL(Windows Subsystem for Linux)。

当然,您想体验其他版本的

Linux
,也是可以的,比如
Arch Linux

在编译出来的命令行中使用Linux命令安装完WSL版的Linux后,还需要开启

WSL
的权限:

以"管理员权限"另开一个

PowerShell
窗口,

然后输入以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

等这里的命令完成,就可以在build出来的Terminal中执行Linux命令了。

先在

cmd
中输入
Ubuntu
,需要花一点点时间启动
Ubuntu
,设置好用户名和密码。

然后就可以愉快地玩Ubuntu了,下面我随便输入了几个命令,如

ps
touch
ls
等,如下图所示。

如果您不想自己配置和build,可以下载预编译版本来体验:

https://pan.baidu.com/s/1Xrh-0KbsBmh-zJYsdtYqnA 口令: y233

当然,这个预编译版本的来源是:

https://www./link/3f566d40129873e5c1fccede4a4e0a92.

此外,Scott Hanselman写了一篇相关文章:

A new Console for Windows - It’s the open source Windows Terminal - Scott Hanselman

https://www.hanselman.com/blog/ANewConsoleForWindowsItsTheOpenSourceWindowsTerminal.aspx,有园友已经将其部分内容翻译成了中文,见提前体验让人"回归Windows怀抱"的Windows Terminal - 三升水 - 博客园。

安装预编译版本的方法解压下载到的文件

WindowsTerminal_SelfSigned_x86_x64_arm64.7
,解压之。

选择后缀名为

.cer
的证书文件,右击选择"安装证书"。

图中蓝色的两处人选其一即可。

接下来,点另一个后缀名为

.msixbundle
的文件,就可以安装了:

如果要卸载,也很简单。只需在开始菜单中输入

应用和功能
,找到相应的软件,点卸载即可。

安装完

Ubuntu
之后,就可以体验有3类Tab风格的Terminal了,具体安装方法见前文。

Ctrl + T
,打开另一个
Tab
,此时会看到设置按钮,点击之,会弹出一个
profile.json
的文件。

然后用我上传的主题文件

profile-my.json
的内容替换其中的内容,保存,一会就看到新的主题样式了。比如,新的
PowerShell
的样式如下:

切换到

WSL
后,就可以体验
Emoji表情
啦,一开始我用输入法键入了几个,发现有些暂时不好输入,但好在可以复制了贴进去。

这里推荐一个字符网站http://cn.piliapp.com/symbol/,找到自己想要的表情,点页面上方的复制,然后贴到Terminal中就好了。比如我随便输入了几个,效果如下:

备份地址:

https://www./link/43ec32082582d0a2288dca0d139a097a

其他玩法:

Build and install Windows Terminal from Azure DevOps ? Keep IT tidy

https://www./link/10dec6809fdb7a4a91cec4261efeddfc

如有什么疑问或建议,欢迎及时留言交流~

参考:

Terminal/README.md at master · microsoft/Terminal

https://www./link/0caa694ffbe5d4bc7a4f359989388fdb0

Windows 10 上WSL (Windows上的Linux 子系统)的安装指南 | Microsoft Docs

https://www./link/0caa694ffbe5d4bc7a4f359989388fdb1

Donovan Brown | Building the new Windows Terminal with Visual Studio 2019

https://www./link/0caa694ffbe5d4bc7a4f359989388fdb2

Windows Terminal profile.json

https://www./link/0caa694ffbe5d4bc7a4f359989388fdb3