码匠工具箱是一个基于 Avalonia + Prism 的模块化桌面工具箱,面向开发者日常效率场景。项目将主程序、公共服务与功能模块解耦,方便后续继续扩展新的工具页,而不会把应用演化成一个难维护的大窗体工程。
从 GitHub Releases 下载最新安装包(附 .sha256 校验):
- Windows x64:
CodeWF.Toolbox-v*-win-x64-setup.exe - Linux x64 / arm64:
CodeWF.Toolbox-*-linux-x64.deb、CodeWF.Toolbox-*-linux-arm64.deb - macOS x64 / arm64:
CodeWF.Toolbox-*-osx-x64.dmg、CodeWF.Toolbox-*-osx-arm64.dmg
- 当前版本:
12.0.9,版本号统一维护在根目录Directory.Build.props的<Version>节点。 - 项目统一使用
net10.0(桌面 App 另加net10.0-windows)。 - 根目录
logo.svg、logo.png、logo.ico是唯一图标源,子工程只通过 MSBuildLink引用,不维护图标副本。 - 运行时帮助、Markdown 示例、内置备忘录、设计说明等业务文档按功能保留;仓库级入口文档使用根目录
README.md和UpdateLog.md。
- 基于 Avalonia UI 与 Semi/Ursa 控件构建跨平台桌面界面。
- 使用 Prism 模块目录、依赖注入与 Region 导航组织工具页面。
- 采用 JSON 资源做国际化(T4 生成强类型
Language.cs),已包含简体中文、繁体中文、英文和日文。 - 内置格式转换、日志查看、开发辅助、Web 辅助、安全工具、XML 翻译管理等模块。
- 保留面向 Native AOT 发布的脚本与平台常量配置。
- 已完善菜单注册、工具搜索和区域导航边界处理。
环境要求:
- .NET 10 SDK
- Avalonia 支持的 Windows、macOS 或 Linux 桌面环境
dotnet restore CodeWF.Toolbox.slnx
dotnet build CodeWF.Toolbox.slnx
dotnet run --project src/CodeWF.Toolbox/CodeWF.Toolbox.csprojsrc/
CodeWF.Toolbox/ 桌面应用、主界面、设置与资源
CodeWF.Core/ 公共抽象、服务与区域定义
CodeWF.Controls/ 公共控件
CodeWF.Modules.Converter/ 转换工具模块
CodeWF.Modules.ToolFramework/ 本地工具运行框架与工具目录
CodeWF.Modules.Development/ 开发辅助模块
CodeWF.Modules.LogViewer/ 大文件日志查看模块
CodeWF.Modules.XmlTranslatorManager/ XML 翻译管理模块
CodeWF.Modules.Security/ 安全工具模块
CodeWF.Modules.Web/ Web 辅助模块
CodeWF.Modules.Network/ 网络工具模块
CodeWF.Modules.Math/ 数学计算模块
CodeWF.Modules.Measurement/ 单位换算模块
CodeWF.Modules.Text/ 文本处理模块
CodeWF.Modules.Data/ 数据处理模块
CodeWF.Modules.Media/ 媒体工具模块
CodeWF.Toolbox.Tests/ 单元测试工程
docs/
assets/ 独立 SVG 图示
- 在
src/CodeWF.Modules.*下创建模块工程。 - 实现
IModule。 - 通过
IToolMenuService注册分组与工具菜单。 - 将页面注册到
RegionNames.ContentRegion。 - 在
App.ConfigureModuleCatalog中加入模块。 - 补齐本模块的 XML 多语言资源和生成的语言键。
详细约定请参考 开发文档。
- 日志查看:快速打开大日志文件,只渲染当前可见区域,并支持文件持续追加时的 tail 跟随。
- 格式转换:提供 JSON/YAML、Base64、GUID、日期时间与图片转图标等工具。
- 开发辅助:提供 JSON/YAML 格式化、Shell 与数据处理等日常开发小工具。
- XML 翻译管理:用于比对、合并和维护 XML 国际化资源。
- 安全/Web/网络/数学/测量/文本/数据/媒体等模块:共 12 个功能模块,覆盖开发与日常常用小工具。
- 本地账号库与用户 Profile 目录位于
%LocalAppData%\CodeWF.Toolbox\Users\(不写入安装目录)。 - 登录框预填演示账号
CodeWF/codewf.com,可直接体验后创建自己的账号。 - 安全/Web/网络/数学/测量/文本/数据/媒体等模块:共 12 个功能模块,覆盖开发与日常常用小工具。
- 本地账号库与用户 Profile 目录位于
%LocalAppData%\CodeWF.Toolbox\Users\(不写入安装目录)。 - 登录框预填演示账号
CodeWF/codewf.com,可直接体验后创建自己的账号。
检查方式:dotnet restore CodeWF.Toolbox.slnx --configfile <local-nuget-config>、dotnet list package --include-transitive、NuGet .nuspec、NuGet.org 与源码仓库信息。优先接受 MIT / Apache-2.0 / BSD;其它开源协议在源码与传递依赖均可追溯时单独标注。
整改:
- 移除了
AvaloniaUI.DiagnosticsSupport和Semi.Avalonia.AvaloniaEdit;AvaloniaEdit 改为Avalonia.AvaloniaEdit+ 官方 Fluent 样式。 CodeWF.AvaloniaControls.ProDataGrid/CodeWF.AvaloniaControls.ProDataGrid.Themes升到12.0.3.2,避开Semi.Avalonia.ProDataGrid黑盒链。- 自研 NuGet 依赖更新到本次修复包:
CodeWF.AvaloniaControls.Themes 12.0.3.3、CodeWF.EventBus 3.4.5.5、CodeWF.Log.Core 12.0.3.1、CodeWF.Tools* 1.3.13.2、Lang.Avalonia.Json 12.0.3.1。 - 稳定开源包更新:
Dapper 2.1.79、Dapper.AOT 1.0.52、Xaml.Behaviors 12.0.0.1、coverlet.collector 10.0.1。 BouncyCastle.Cryptography从2.7.0-beta.98改为稳定2.6.2。Microsoft.Data.Sqlite从11.0.0-preview.4改为稳定10.0.8。xunit.runner.visualstudio从4.0.0-pre.4改为稳定3.1.5。- 按要求保留
Prism.Avalonia/Prism.DryIoc.Avalonia8.1.97.11073和Irihi.Ursa.PrismExtension2.0.0;Prism 9 是收费版本,不升级。
| 包 | 使用范围 | 协议 | 源码/项目地址 | 结论 |
|---|---|---|---|---|
Avalonia / Avalonia.Desktop / Avalonia.AvaloniaEdit / AvaloniaEdit.TextMate |
UI 与编辑器 | MIT | https://github.com/AvaloniaUI/Avalonia / https://github.com/AvaloniaUI/AvaloniaEdit | 通过 |
Semi.Avalonia |
UI 主题 | MIT | https://github.com/irihitech/Semi.Avalonia | 通过,仅保留开源主体包 |
Irihi.Ursa.PrismExtension / Irihi.Ursa.Themes.Semi |
对话框、主题与 Prism 扩展 | MIT | https://github.com/irihitech/Ursa.Avalonia | 通过,保留兼容 Prism 8 的版本线 |
Prism.Avalonia / Prism.DryIoc.Avalonia 8.1.97.11073 |
模块化、DI、Region | MIT | https://github.com/AvaloniaCommunity/Prism.Avalonia | 通过,未使用 Prism 9 |
ReactiveUI.Avalonia / Xaml.Behaviors |
MVVM / 行为 | MIT | https://github.com/reactiveui/reactiveui / https://github.com/wieslawsoltes/Xaml.Behaviors | 通过 |
CodeWF.* / Lang.Avalonia.Json |
自研组件 | MIT | https://github.com/dotnet9 | 自研开源包,通过;ProDataGrid 主题改用 CodeWF.AvaloniaControls.ProDataGrid.Themes |
BCrypt.Net-Next / BouncyCastle.Cryptography / NBitcoin / Otp.NET |
安全与编码工具 | MIT | https://github.com/BcryptNet/bcrypt.net / https://github.com/bcgit/bc-csharp / https://github.com/MetacoSA/NBitcoin / https://github.com/kspearrin/Otp.NET | 通过 |
Dapper / Dapper.AOT / Microsoft.Data.Sqlite |
数据访问 | Apache-2.0 / MIT | https://github.com/DapperLib/Dapper / https://github.com/dotnet/efcore | 通过 |
CronExpressionDescriptor / DiffPlex / Figgle / Figgle.Fonts / Hashids.net / IbanNet / libphonenumber-csharp / Markdig / NUlid / QRCoder / TextMateSharp.Grammars / Tomlyn / UAParser / YamlDotNet |
工具模块 | MIT / BSD / Apache-2.0 | 各 NuGet 包均提供公开 repository/projectUrl | 通过 |
VC-LTL |
Windows 兼容 | EPL-2.0 | https://github.com/Chuyu-Team/VC-LTL5 | 源码开放,按“非优先但可追溯”通过 |
YY-Thunks |
Windows 兼容 | MIT | https://github.com/Chuyu-Team/YY-Thunks | 源码开放,通过 |
Microsoft.NET.Test.Sdk / coverlet.collector / xunit / xunit.runner.visualstudio |
测试 | MIT / Apache-2.0 | https://github.com/microsoft/vstest / https://github.com/coverlet-coverage/coverlet / https://github.com/xunit/xunit | 通过 |
传递依赖检查结论:有效依赖链未发现 Semi.Avalonia.Dock、Semi.Avalonia.ProDataGrid、Semi.Avalonia.AvaloniaEdit、AvaloniaUI.DiagnosticsSupport、Prism 9 包、System.Drawing.Common 4.7.0 或其它黑盒组件。Magick.NET-Q16-AnyCPU 通过 CodeWF.Tools.Image 1.3.13.2 使用,源码与许可证可追溯。
XML 文件统一使用两个空格缩进。Directory.Packages.props 统一承载 NuGet 中央包管理开关和包版本变量,包括 AvaloniaVersion 等共享版本属性;Directory.Build.props 仅保留项目构建、编译选项和 NuGet 元数据。仓库如引用 VC-LTL、YY-Thunks,这两个兼容旧版操作系统的特殊包必须使用最新预览版。
标准发布流程与发布说明规范见 docs/RELEASE.md。
