
欢迎来到 Windows Terminal、控制台和命令行仓库本仓库包含以下项目的源代码Windows Terminal、Windows Terminal 预览版、Windows 控制台主机conhost.exe、两个项目共享的组件、ColorTool、展示如何使用 Windows 控制台 API 的示例项目。相关仓库包括Windows Terminal 文档仓库为文档做贡献、控制台 API 文档、Cascadia Code 字体。目录安装和运行 Windows TerminalMicrosoft Store [推荐]其他安装方法通过 GitHub通过 Windows 程序包管理器 CLI即 winget通过 Chocolatey非官方通过 Scoop非官方安装 Windows Terminal Canary终端和控制台概述Windows TerminalWindows 控制台主机共享组件创建全新 Windows Terminal资源常见问题解答文档贡献代码与团队沟通开发者指南前提条件构建代码在 PowerShell 中构建在 Cmd 中构建运行与调试编码指南行为准则安装和运行 Windows Terminal注意Windows Terminal 需要 Windows 10 2004版本 19041或更高版本。Microsoft Store [推荐]从 Microsoft Store 安装 Windows Terminal。这样当发布新版本时可以通过自动更新始终使用最新版本这是推荐的安装方式。其他安装方法通过 GitHub对于无法从 Microsoft Store 安装 Windows Terminal 的用户可以从本仓库的“发布版本”页面手动下载已发布的版本。从“Assets”部分下载 Microsoft.WindowsTerminal_.msixbundle 文件。要安装该应用只需双击 .msixbundle 文件应用安装程序将自动运行。如果由于某种原因安装失败可以在 PowerShell 提示符下尝试以下命令# 注意如果你使用的是 PowerShell 7请在使用 Add-AppxPackage 之前运行以下命令# Import-Module Appx -UseWindowsPowerShellAdd-AppxPackage Microsoft.WindowsTerminal_.msixbundle注意如果手动安装终端可能需要安装 VC v14 桌面框架包。这仅在较旧版本的 Windows 10 上可能需要并且仅当遇到缺少框架包的错误时才需要当发布新版本时终端不会自动更新因此需要定期安装最新的终端版本以获得所有最新的修复和改进通过 Windows 程序包管理器 CLI即 wingetwinget 用户可以通过安装 Microsoft.WindowsTerminal 包来下载并安装最新的终端版本winget install --id Microsoft.WindowsTerminal -e注意依赖项支持在 WinGet 1.6.2631 或更高版本中可用。要安装终端稳定版 1.18 或更高版本请确保使用的是更新后的 WinGet 客户端。通过 Chocolatey非官方Chocolatey 用户可以通过安装 microsoft-windows-terminal 包来下载并安装最新的终端版本choco install microsoft-windows-terminal要使用 Chocolatey 升级 Windows Terminal请运行以下命令choco upgrade microsoft-windows-terminal如果在安装/升级包时遇到任何问题请访问 Windows Terminal 包页面并按照 Chocolatey 问题处理流程操作。通过 Scoop非官方Scoop 用户可以通过安装 windows-terminal 包来下载并安装最新的终端版本scoop bucket add extrascoop install windows-terminal要使用 Scoop 更新 Windows Terminal请运行以下命令scoop update windows-terminal如果在安装/更新包时遇到任何问题请在 Scoop Extras 仓库的问题页面上搜索或报告问题。安装 Windows Terminal CanaryWindows Terminal Canary 是 Windows Terminal 的每日构建版本。该版本包含主分支的最新代码让用户有机会在新功能进入 Windows Terminal 预览版之前进行试用。Windows Terminal Canary 是最不稳定的版本因此可能会在发现之前遇到一些 bug。Windows Terminal Canary 提供应用安装程序分发版和便携式 ZIP 分发版。应用安装程序分发版支持自动更新。由于平台限制此安装程序仅适用于 Windows 11。便携式 ZIP 分发版是一个便携式应用程序它不会自动更新也不会自动检查更新。此便携式 ZIP 分发版适用于 Windows 1019041和 Windows 11。分发架构链接应用安装程序x64、arm64、x86下载便携式 ZIPx64下载便携式 ZIPARM64下载便携式 ZIPx86下载了解更多关于 Windows Terminal 分发版的类型。终端和控制台概述在深入研究代码之前请花几分钟时间阅读以下概述。Windows TerminalWindows Terminal 是一款全新的、现代化的、功能丰富且高效的终端应用程序专为命令行用户设计。它包含了许多 Windows 命令行社区最常请求的功能包括对标签页、富文本、全球化、可配置性、主题和样式等的支持。同时终端还需要满足目标和指标以确保其保持快速高效不会消耗大量内存或电量。Windows 控制台主机Windows 控制台主机 conhost.exe 是 Windows 最初的命令行用户体验。它还承载了 Windows 的命令行基础设施、Windows 控制台 API 服务器、输入引擎、渲染引擎、用户偏好设置等。本仓库中的控制台主机代码是 Windows 中 conhost.exe 的实际构建源。自 2014 年接管 Windows 命令行以来团队为控制台添加了几个新功能包括背景透明、基于行的选择、对 ANSI / 虚拟终端序列的支持、24 位颜色、伪控制台“ConPTY”等。然而由于 Windows 控制台的主要目标是保持向后兼容性无法添加社区和团队多年来一直期望的许多功能包括标签页、Unicode 文本和表情符号。这些限制促使创建了全新的 Windows Terminal。可以在命令行团队博客上的系列博客文章中了解更多关于命令行的演变特别是 Windows 命令行的演变。共享组件在对 Windows 控制台进行全面改造时对其代码库进行了大幅现代化改造将逻辑实体清晰地分离成模块和类引入了一些关键的可扩展性点用更安全、更高效的 STL 容器替换了几个旧的自定义集合和容器并使用 Microsoft 的 Windows 实现库WIL使代码更简单、更安全。这次改造使得控制台的几个关键组件可以在 Windows 上的任何终端实现中重复使用。这些组件包括一个新的基于 DirectWrite 的文本布局和渲染引擎、一个能够存储 UTF - 16 和 UTF - 8 的文本缓冲区、一个 VT 解析器/发射器等。创建全新 Windows Terminal在开始规划全新的 Windows Terminal 应用程序时探索并评估了几种方法和技术栈。最终决定继续在 C 代码库上投入精力这样可以在现有的控制台和新终端中重用上述几个现代化组件。此外意识到这将使能够将终端的大部分核心构建为一个可重用的 UI 控件供其他人集成到他们自己的应用程序中。这项工作的成果包含在本仓库中并作为 Windows Terminal 应用程序提供可以从 Microsoft Store 下载也可以直接从本仓库的发布版本中下载。资源有关 Windows Terminal 的更多信息可能会发现以下资源有用且有趣命令行博客、命令行背景知识博客系列、Windows Terminal 发布终端“宣传视频”、Windows Terminal 发布Build 2019 会议、Run As Radio第 645 期 - 与 Richard Turner 聊 Windows Terminal、Azure DevOps 播客第 54 期 - Kayla Cinnamon 和 Rich Turner 谈 Windows Terminal 上的 DevOps、Microsoft Ignite 2019 会议现代 Windows 命令行Windows Terminal - BRK3321。常见问题解答我构建并运行了新终端但它看起来和旧控制台一样原因在 Visual Studio 中启动了错误的解决方案。解决方案确保在 Visual Studio 中构建并部署 CascadiaPackage 项目。注意OpenConsole.exe 只是一个本地构建的 conhost.exe是承载 Windows 命令行基础设施的经典 Windows 控制台。Windows Terminal 使用 OpenConsole 来连接命令行应用程序并与之通信通过 ConPty。文档所有项目文档位于 aka.ms/terminal - docs。如果想为文档做出贡献请在 Windows Terminal 文档仓库中提交拉取请求。贡献代码很高兴能与出色的社区一起构建和改进 Windows Terminal在开始进行功能开发或修复之前请阅读并遵循贡献者指南以避免任何浪费或重复的工作。与团队沟通与团队沟通的最简单方法是通过 GitHub 问题。请提交新问题、功能请求和建议但在创建新问题之前请先搜索是否有类似的已打开或已关闭的现有问题。如果有一个认为暂时不需要创建问题的问题请通过 Twitter 联系Christopher Nguyen产品经理nguyen_dowsDustin Howett工程主管dhowettMike Griese资深开发者zadjiimastodon.socialCarlos Zamora开发者cazamor_msftPankaj Bhojwani开发者Leonard Hecker开发者LeonardHecker。开发者指南前提条件可以通过以下两种方式之一配置环境以构建终端。使用 WinGet 配置文件克隆仓库后可以使用 WinGet 配置文件来设置环境。默认配置文件会安装 Visual Studio 2026 社区版及其他所需工具。在 .config 目录中还有另外两种适用于 Visual Studio 2026 企业版和专业版的配置文件变体。要运行默认配置文件可以从资源管理器中双击该文件也可以运行以下命令winget configure .config\configuration.winget手动配置必须运行 Windows 10 2004版本 10.0.19041.0或更高版本才能运行 Windows Terminal。必须在 Windows 设置应用中启用开发人员模式才能在本地安装和运行 Windows Terminal。必须安装 PowerShell 7 或更高版本。必须安装 Windows 1110.0.26100SDK版本为 10.0.26100.8249 或更高。必须至少安装 VS 2026 版本 18.6。必须通过 VS 安装程序安装以下工作负载。注意打开解决方案时会提示自动安装缺失的组件使用 C 进行桌面开发WinUI 应用程序开发。必须安装 .NET Framework 4.7.2 目标包才能构建测试项目。构建代码OpenConsole.slnx 可以在 Visual Studio 中构建也可以使用 /tools 目录中的一组便捷脚本和工具从命令行构建。在 PowerShell 中构建Import-Module .\tools\OpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild在 Cmd 中构建.\tools\razzle.cmd bcz运行与调试要在 VS 中调试 Windows Terminal请在“解决方案资源管理器”中右键单击 CascadiaPackage 并选择“属性”。在“调试”菜单中将“应用程序进程”和“后台任务进程”更改为“仅本机”。然后应该可以通过按 F5 来构建和调试终端项目。确保选择“x64”或“x86”平台 - 终端不能为“任何 CPU”构建因为终端是一个 C 应用程序而不是 C# 应用程序。 不能通过直接运行 WindowsTerminal.exe 来启动终端。有关原因的更多详细信息请参阅 #926、#4043。编码指南请阅读以下关于编码实践的简要文档。 如果发现这些文档中缺少某些内容请随时为仓库中任何位置的文档文件做出贡献或编写一些新文档。随着了解为了让人们有效地为项目做出贡献需要提供哪些内容这是一个持续改进的过程。包括编码风格、代码组织、旧代码库中的异常处理、在 WIL 中与 Windows 交互的有用智能指针和宏。行为准则本项目采用了 Microsoft 开源行为准则。有关更多信息请参阅行为准则常见问题解答或通过 opencodemicrosoft.com 联系提出任何额外的问题或意见。