English | 中文
ExWSLC 是一个原生 Windows 桌面端的 WSL Container 管理器。它面向当前 WSL 内置的容器运行时,提供容器、镜像、网络、卷、注册表、日志、命令执行和资源统计管理,不依赖 Docker Desktop。
WSL Container 及其 SDK 目前仍处于预览阶段。ExWSLC 会在启动时检查已安装的 CLI 与 SDK,并把预览期差异隔离在运行时接口后面,方便后续适配正式版 API。
前往 GitHub Releases 下载最新的自包含发布包:
- 大多数 Intel 和 AMD Windows 电脑请选择
win-x64。 - Windows on Arm 设备请选择
win-arm64。
解压后运行 ExWSLC.exe 即可,发布包不要求另行安装 .NET。
- 基于 WPF-UI 4.3 的 Fluent 桌面界面,支持 Mica、系统/浅色/深色主题,以及英文和简体中文。
- 为容器、镜像、网络、卷和设置提供独立工作区。
- 容器双栏工作台:包含可搜索列表、创建表单、快捷生命周期操作和所选容器的详细视图。
- 创建容器时支持 CPU、内存、GPU、端口、环境变量、网络、用户、工作目录和卷挂载等参数。
- 容器详情涵盖日志、资源用量、网络、挂载、配置和原始 Inspect 输出。
- 容器生命周期管理:启动、停止、强制停止、重启、删除、导出、实时跟随日志、一次性 Exec,以及打开 Windows Terminal 交互终端。
- 镜像管理:拉取、构建、导入、加载、保存、打标签、推送、Inspect、删除和清理。
- 网络支持创建、Inspect、删除和清理;命名卷支持创建、删除和清理。
- 支持取消运行时操作、通过
--password-stdin登录注册表,以及打开原生 WSLC 设置。 - 应用设置持久化,支持刷新间隔、语言和主题配置。
界面导航和 Fluent 主从布局参考了 ExHyperV 的产品组织方式;ExWSLC 的视图、资源和产品素材均围绕 WSL Container 工作流重新实现。
- Windows 11。
- 已安装并更新到包含
wslc.exe的 WSL 版本;项目开发时使用 WSL 2.9.3 进行验证。 - .NET 10 SDK,用于从源码构建;发布包已自包含运行时。
- Windows Terminal 为可选依赖,仅在打开交互式容器终端时需要。
如果应用提示缺少组件,可以先执行:
wsl --update
wslc version在仓库根目录执行:
dotnet restore ExWSLC.sln
dotnet build ExWSLC.sln
dotnet test ExWSLC.sln
dotnet run --project src/ExWSLC.csproj发布自包含包(将 <RID> 替换为 win-x64 或 win-arm64):
dotnet publish src/ExWSLC.csproj -c Release -r <RID> --self-contained true -o publish/<RID>项目目标框架为 net10.0-windows10.0.19041.0。
应用设置保存在:
%LocalAppData%\ExWSLC\settings.json
ExWSLC 只持久化应用偏好设置,例如语言、主题和刷新间隔。运行时清单始终来自 WSLC 本身。
安全边界:
- 所有
wslc.exe参数通过ProcessStartInfo.ArgumentList传递,不拼接 shell 命令。 - 注册表密码通过标准输入传给
wslc registry login --password-stdin,不会写入设置、任务日志或命令显示。 - 删除、清理等破坏性操作会在 UI 中二次确认。
- 长时间运行的任务支持取消,并会尝试终止完整子进程树。
ExWSLC 采用 WPF / MVVM 结构:
WPF Views → Page ViewModels → RuntimeWorkspace → IContainerRuntime → wslc.exe
↘ ITaskService
↘ ISettingsService
Startup → IRuntimeCapabilityService → Microsoft.WSL.Containers.WslcService
当前以 wslc.exe --format json 作为容器、镜像、网络、卷和统计信息的事实来源。Microsoft.WSL.Containers SDK 主要用于依赖检测、版本报告和用户主动安装缺失组件。等预览 API 稳定后,可以通过替换 IContainerRuntime 实现切换到更完整的原生 API。
更多设计说明见 docs/architecture.md。
单元测试覆盖:
wslc参数映射和命令注入边界。- 预览 JSON 字段兼容。
- 任务取消、状态流转和错误恢复。
- 注册表密码脱敏。
- 设置持久化。
- ViewModel 刷新、搜索和选中状态保持。
- 容器 Inspect、网络与挂载信息的解析和按需加载。
- 本地化资源、XAML 绑定与可复用控件行为。
运行测试:
dotnet test ExWSLC.sln欢迎提交 issue 和改进建议。贡献前请阅读 CONTRIBUTING.md。由于 WSL Container 仍处于预览阶段,涉及运行时行为的修改请尽量说明测试环境、wslc version 输出和复现步骤。
Copyright © 2026 ExWSLC contributors.
本项目基于 GNU General Public License v3.0 授权。
