一个基于 WinUI 3 的 Windows 桌面应用程序,提供便捷的边栏助手功能。
边栏助手是一款现代化的 Windows 应用,采用 WinUI 3 框架开发,为用户提供快速访问和管理各种功能的边栏界面。
- .NET 10.0
- WinUI 3 (Windows App SDK 2.0)
- Windows 10/11 (最低版本 17763)
- DevWinUI 9.9.4
- CommunityToolkit.WinUI.Controls
- Windows App Development CLI 0.3+
- Native AOT 编译支持
- Windows 10 版本 1809 (Build 17763) 或更高版本
- Windows 11 (推荐)
- 支持平台:x86、x64、ARM64
- 🎯 边栏快速访问
- 🌐 网页应用集成
- ⚙️ 灵活的设置选项
- 🔔 系统托盘支持
- 🌍 多语言本地化支持
- 📤 Windows 分享目标集成
- Visual Studio 2022 或更高版本(可选,AOT编译需要)
- .NET 10.0 SDK
- Windows App SDK 2.0
- Windows 10 SDK (10.0.19041.0 或更高)
- Windows App Development CLI 0.3+ (推荐)
- Visual C++ 构建工具(Native AOT 编译需要)
- 克隆仓库
git clone <repository-url>
cd "DockedTools"- 安装 Windows App Development CLI(推荐)
# 通过 WinGet 安装
winget install Microsoft.WinAppCli
# 或通过 npm 安装
npm install -g @microsoft/winappcli- 还原 NuGet 包
dotnet restore- 构建并运行项目
方式 1:使用 dotnet run(推荐)
# 一键构建、打包、注册并启动应用
dotnet run方式 2:使用 Windows App CLI
# 构建项目
dotnet build -c Debug /p:Platform=x64
# 运行打包应用
winapp run .\bin\x64\Debug\net10.0-windows10.0.19041.0\win-x64方式 3:使用 Visual Studio
- 直接按 F5 运行
本项目已集成 Microsoft.Windows.SDK.BuildTools.WinApp NuGet 包,支持使用 dotnet run 直接启动打包应用。
日常开发:
dotnet run # 自动完成:构建 → 打包 → 注册 → 启动调试模式(捕获调试输出和异常):
dotnet build "DockedTools.csproj" -c Debug /p:Platform=x64
winapp run .\bin\x64\Debug\net10.0-windows10.0.19041.0\win-x64 --debug-output清理已注册的包:
winapp unregister "DockedTools"UI 自动化测试:
# 列出应用窗口
winapp ui list-windows -app "DockedTools"
# 截图
winapp ui screenshot -app "DockedTools" -output screenshot.png
# 检查 UI 树
winapp ui inspect -app "DockedTools"DockedTools/
├── 功能/
│ ├── 应用入口/ # 应用程序入口点
│ ├── 主窗口/ # 主窗口实现
│ ├── 主窗口内容区/ # 主窗口内容区域
│ ├── 页面/ # 各功能页面
│ │ ├── 主页/
│ │ ├── 设置/
│ │ ├── 网页应用/
│ │ └── 新建/
│ ├── 托盘/ # 系统托盘功能
│ └── 本地化/ # 多语言支持
├── Assets/ # 应用资源文件
└── Properties/ # 项目属性
项目支持多平台发布和 Native AOT 编译:
# 发布 x64 版本(依赖系统 .NET 运行时,体积小)
dotnet publish -c Release -r win-x64
# 发布 x64 版本(依赖系统 .NET 运行时,体积小)
dotnet publish -c Release -r win-x64
# 发布 ARM64 版本
dotnet publish -c Release -r win-arm64Native AOT 将应用编译为原生机器码,具有以下优势:
- ⚡ 启动速度更快(无需 JIT 编译)
- 💾 内存占用更小(无 JIT 编译器开销)
- 📦 自包含(无需安装 .NET 运行时)
前置要求:
- Visual C++ 构建工具(可通过 Visual Studio Installer 安装)
- 足够的磁盘空间(AOT 编译需要更多时间和空间)
发布命令:
# 使用预定义的 AOT 发布配置(推荐)
dotnet publish -p:PublishProfile=win-x64-aot # x64 平台
dotnet publish -p:PublishProfile=win-arm64-aot # ARM64 平台
# 或手动指定 AOT 参数
dotnet publish -c Release -r win-x64 /p:PublishAot=true
# 发布 ARM64 版本
dotnet publish -c Release -r win-arm64 /p:PublishAot=true发布输出路径:
- 标准发布:
bin\x64\Release\net10.0-windows10.0.26100.0\win-x64\publish\ - AOT 发布:
bin\publish\win-x64-aot\(使用配置文件时)
性能对比:
| 模式 | 启动时间 | 内存占用 | 体积 | .NET 运行时依赖 |
|---|---|---|---|---|
| Framework-Dependent | 中等 | 中等 | 小 | ✅ 需要 |
| Native AOT | 快 | 小 | 大 | ❌ 不需要 |
信息来源:
使用 Windows App CLI 打包为 MSIX:
# 生成 MSIX 安装包
winapp package .\bin\Release\net10.0-windows10.0.26100.0\win-x64
# 或使用 Visual Studio 的「打包」功能本项目已启用 Native AOT 编译,所有代码均已验证 AOT 兼容性:
✅ 已处理的 AOT 问题:
- JSON 序列化使用源生成器(
WebAppJsonContext) - 避免使用反射和动态代码生成
- 所有 NuGet 包均兼容 AOT
- 避免反射:不要使用
Type.GetType(),Assembly.Load(),Activator.CreateInstance()等 - JSON 序列化:使用
WebAppJsonContext源生成上下文,而非JsonSerializer.Serialize<T>() - 构建时验证:运行
dotnet build -c Release检查是否有 IL2XXX 或 IL3XXX 警告
示例(正确的 JSON 序列化):
// ❌ 错误:不兼容 AOT
var json = JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true });
// ✅ 正确:使用源生成上下文
var json = JsonSerializer.Serialize(data, WebAppJsonContext.Default.ExportMetadata);信息来源:
dotnet publish -c Release -r win-arm64
### 使用 Windows App CLI 打包
```bash
# 生成 MSIX 包
winapp package .\bin\Release\net10.0-windows10.0.19041.0\win-x64
# 添加命令行别名(可通过名称启动应用)
winapp manifest add-alias
欢迎提交 Issue 和 Pull Request!
本应用支持多语言界面,包括简体中文、繁體中文、English、日本語、한국어、Français、Deutsch 和 Español。
如需了解如何添加或修改本地化资源,请查看 本地化指南。
本项目采用 MIT 许可证。详见 LICENSE 文件。
云漠星
⭐ 如果这个项目对你有帮助,欢迎给个 Star!