# Hua.Cli 面向 .NET 生态的全局命令行工具(Global .NET CLI Tool),为开发者提供项目脚手架生成和依赖版本管理等基础开发工作流支持。 ## 安装 ```bash dotnet tool install -g Hua.Cli ``` ## 命令列表 | 命令 | 描述 | |---|---| | `hua help` | 显示帮助信息 | | `hua new` | 基于模板创建新项目/解决方案 | | `hua update` | 更新项目 NuGet 包版本 | ## 使用示例 ### 创建新项目 ```bash # 创建标准分层应用 hua new MyProject # 创建微服务解决方案 hua new MyMicroservice -t ms # 指定模板和选项 hua new MyProject -t app -db ef -u mvc # 指定输出目录 hua new MyProject -o D:\Projects ``` ### 更新依赖 ```bash # 更新到最新版本 hua update # 更新到指定版本 hua update -v 9.0.0 # 试运行 hua update --dry-run ``` ### 查看帮助 ```bash # 查看所有命令 hua help # 查看指定命令的详细帮助 hua help new hua help update ``` ## 项目结构 ``` Hua.Cli/ ├── src/ │ ├── Hua.Cli/ # 启动入口 │ └── Hua.Cli.Core/ # 核心逻辑 │ └── Hua/Cli/ │ ├── Args/ # 命令行参数解析 │ ├── Commands/ # 命令实现 (help/new/update) │ ├── Configuration/ # 配置管理 │ ├── Http/ # HTTP 客户端 │ ├── ProjectBuilding/ # 项目构建流水线引擎 │ ├── ProjectModification/ # 项目修改工具 │ ├── Utils/ # 工具类 │ └── Version/ # 版本管理 └── test/ └── Hua.Cli.Tests/ # 单元测试 ``` ## 技术栈 - **目标框架**: .NET 9.0 - **依赖注入**: Autofac (Volo.Abp.Autofac) - **日志**: Serilog - **模板引擎**: 自研文件替换引擎 - **NuGet**: NuGet.Versioning + NuGet.Protocol ## 架构设计 本项目借鉴 [Volo.Abp.Cli](https://github.com/abpframework/abp) 的分层插件化架构设计: - **命令模式**: 所有操作封装为 `IConsoleCommand` 实现,通过 `CommandSelector` 动态路由 - **流水线模式**: 项目构建采用 `ProjectBuildPipeline` 串联多个 `ProjectBuildPipelineStep` - **策略模式**: 不同模板通过继承 `TemplateInfo` 基类实现各自构建步骤 ## 开发 ```bash # 还原依赖 dotnet restore # 编译 dotnet build # 运行测试 dotnet test # 本地运行 dotnet run --project src/Hua.Cli -- help ```