字节笔记本
2026年6月7日
WindowsDeveloperConfig:微软给 Windows 开发环境配置的官方答案
我在 macOS 上工作了好几年,每换一台 Mac,第一件事就是跑 brew bundle install,把 Brewfile 里写好的工具一次性装完。整个过程不超过 20 分钟,喝杯咖啡回来环境就好了。
Windows 开发者长期没有这种东西。
Build 2026 上,微软把这个问题正式处理了。他们开源了 WindowsDeveloperConfig,一个基于 winget configure 的声明式开发环境配置仓库。
核心思路
用 YAML 文件描述你要的机器状态,然后让 winget configure 去执行。这套机制叫 WinGet DSC(Desired State Configuration v3),底层是 PowerShell DSC,但不需要你了解这些细节。
你只需要知道一件事:配置文件是幂等的。第一次跑装软件,第二次跑什么都不会动。同一份 .winget 文件在不同机器上跑,结果一致。
三个层次,按需选
第一套:Windows Dev Config(全家桶)。 一条命令完成 WSL 安装、Ubuntu 配置、VS Code、Git、PowerShell 7、Python 3.14、Node 24 LTS、字体、Terminal 主题……全部搞定。会触发一次重启(装 WSL 需要开 Windows 可选特性),重启后 RunOnce 任务会自动继续跑完剩余部分。
winget configure -f .\windows-dev-config\dev-config.winget --accept-configuration-agreements --disable-interactivity第二套:WSL Comfort。 只负责打磨 WSL 里的 shell 体验。装 zsh、Starship、Cascadia Code Nerd Font、配 Windows Terminal 主题。支持交互式和非交互式两种模式:
.\wsl-comfort\install.ps1第三套:单语言 Workload。 只装你需要的那一个语言链。目前支持 TypeScript、PHP、.NET、Go、Java、Rust、Python(含 uv)、WinForms、WinUI 3。
winget configure -f .\Workloads\go\configuration.winget --accept-configuration-agreements --disable-interactivityCI 测试这件事很关键
这个项目让我觉得认真的地方,是每个 Workload 都有 CI 覆盖。不是那种"我相信它能跑"的 CI,而是每次 push 都会在真实的 GitHub runner 上装好环境,然后编译一个 Hello World,把 stdout 跟预期输出做 diff。
如果哪天某个包的 installer 在 winget 仓库里坏了,或者某个语言版本号变了导致行为不一致,CI 会直接挂掉。这种保证方式,比"我上次装成功了"要可靠很多。
在用之前,先启用 winget configure
winget configure 不是默认开的,需要先执行一次:
winget configure --enable如果是在非提权环境,还需要先装 Visual C++ Redistributable,否则 winget configure 会报内部错误:
winget install Microsoft.VCRedist.2015+.x64几个值得关注的细节
src/manifest.yml 是整个仓库的数据中心。所有 Workload 的路径、构建命令、语言元数据都在这里声明,CI 矩阵和即将推出的 PowerToys Command Palette 插件都从这里读取。
顶层的 windows-dev-config/、Workloads/、wsl-comfort/ 这几个目录是经过 Authenticode 签名的发布版本,由 sign pipeline 自动生成,不要直接编辑。真正的源码在 src/ 下面。
wsl-comfort 的 Linux 脚本是独立的,可以单独拿出来放到任意 Ubuntu 主机上跑,不依赖 Windows 侧。
Command Palette 插件还在做:src/future/cmdpal/ 下面有个 PowerToys Command Palette 插件的早期实现,读取同一份 manifest.yml,把每个 Workload 变成 Command Palette 里可以直接启动的条目。以后不需要记命令,直接在 Command Palette 里搜"Go",回车就装。
总结
macOS 那边 Brewfile 这套东西已经被开发者用了十多年,配套的 dotfiles 文化也相当成熟。Windows 这边一直缺一个官方认可、有 CI 背书的同等物。
这个仓库不算完美,Python 锁定在 3.14、Node 锁在 24 LTS,想偏离版本需要自己 fork 改配置。但这是微软第一次把这件事当成一个工程项目来做,有测试、有签名、有 manifest 作为单一事实来源。对于需要频繁换机、或者要标准化团队开发环境的场景,值得认真看一眼。