👨‍💻 niltor    📆 2026-09-10 13:35

10.0版本更新

10.0.1

该版本主要对工具内部实现进行了优化,功能方面没有变更。

变更内容

将工具内部使用的EFCore/Sqlite移除,使用Perigon.minidb替代,效果如下:

  • 打包大小从17mb减少到10mb
  • 实体解析不再依赖EFCore DbContext,继续使用Roslyn,加快了生成速度

修复文档链接的错误

影响

由于不再使用Sqlite,打开工具后,需要重新添加项目。之前存储在Sqlite中的数据无法继续使用。

10.1.0

添加了pack和install命令,用来打包和安装模块,为后续的跨项目模块复用提供一个基础支持。

Tip

最新的模板已不再包含默认的模块代码,如SystemMod,需要的用户可以从模板仓库中的package_modules去获取模块文件,然后通过命令行进行安装。

10.1.9 - 10.1.10

  • 发布流程增加发布前测试校验,并调整本地包输出到仓库根目录的 artifacts 目录。
  • generate 命令增加 entity、dto、manager、controller 子命令;其中 entity 用于输出实体模型生成规则,controller 支持 api 别名。
  • 完善实体生成规则,包括按模块创建实体目录,以及 DbContext 中 DbSet 属性的标准定义方式。

10.1.11

  • C# OpenAPI 客户端生成支持识别 multipart/form-data 中的二进制文件字段,生成使用 Stream、文件名和 multipart 字段名的上传方法。
  • multipart 请求生成扩展为支持多个文件字段,以及字符串、数字、布尔值和数组等普通表单字段,并同步支持 C#、Angular、Axios 客户端。
  • 修正 C# 模型生成在项目名称为空时产生多余点号命名空间的问题。

10.1.12

  • generate request 命令新增 -c/--cover-base-service;默认保留已有的 base.service.ts,需要时显式覆盖。Studio 默认也保留该文件。
  • 修正 C# 客户端生成的上传、multipart、下载和 JSON 请求路径拼接逻辑,避免 HttpClient 在多级 BaseAddress 下从域名根路径开始请求。

10.1.13

  • 修正 OpenAPI tag 包含空格或其他非法标识符字符时的请求服务名生成,统一生成安全的 PascalCase C#/TypeScript 服务名。
  • 修正包含空格的 OpenAPI tag 对应的请求服务文件名,统一使用连字符格式。

10.1.14

  • 修复 Linux 环境下的打包问题,将 ShareDlls.txt 按打包脚本期望的大小写纳入版本控制,避免 Studio 压缩包包含重复的共享程序集。

10.1.15

  • 客户端请求生成支持 OpenAPI 中的 204、205、304 和 HEAD 无内容响应;C# 生成 Task,Angular/Axios 生成 void 返回类型。
  • C# 的 multipart 和文件上传方法根据 OpenAPI 声明的 HTTP 方法生成,支持 PUT 等非 POST 方法;Angular/Axios 同步修正请求方法处理。
  • C# 客户端错误响应保留原始内容,并通过 ResponseContent 提供 Content、StatusCode 和 ReasonPhrase,便于调用方处理不同格式的错误响应。

10.1.16

  • C# 客户端请求路径改为不带 / 开头的相对 URI,并直接交给 HttpClient 与 BaseAddress 合并;配置 C# 客户端的 BaseAddress 时,地址结尾必须带 /,例如 https://example.com/api/。

10.1.17

  • 新增 perigon update 命令:可靠识别已安装的 Perigon.templates,在已安装时更新、未安装时安装,然后生成临时项目并显示受管文件的新增和修改差异。
  • 通过 y/n 确认后才应用模板差异;取消时保持当前项目不变,不删除项目独有文件,并排除指定的数据库上下文文件。

10.2.0

  • 更新模板前不再检查已安装模板或调用 dotnet new update;每次直接执行 dotnet new install Perigon.templates,确保对比使用最新模板。
  • 完善 perigon update 的交互界面:左侧以文件列表显示 (+新增行数 -删除行数),右侧以颜色区分新增、删除、上下文和文件头差异;两侧内容过多时显示可视范围和上下滚动提示。
  • 支持使用方向键浏览并自动保持当前文件可见、空格多选文件、PgUp/PgDn 滚动右侧差异、回车应用已选择文件,按 Esc 取消;模板比较会忽略换行、行首尾空白、连续空白和空白行差异,但应用前仍会严格校验文件快照。
  • update 左栏改为只显示文件名;不再对比 src/Definition/EntityFramework/Migrations/ 和 src/Perigon/Perigon.AspNetCore/Constants/WebConst.cs。应用文件后会自动执行 dotnet build 并报告编译结果。
  • Studio 移除提示词、自定义模板、生成任务和 MCP 配置页面。项目专用模板创建与代码生成改为通过项目 skills 引导 AI,并使用 CLI 或 Agent MCP 完成。
  • Agent MCP 移除 ExecuteGenerateTaskAsync,不再提供基于 Studio 生成任务 ID 的执行机制。

1.2.0

  • 新增 perigon update 及交互式双栏选择器,用于查看并确认应用模板差异。
  • 保留项目独有文件,比较时忽略无语义的空白差异,并在应用前校验文件快照,避免并发修改覆盖本地变更。
  • 增加 Agent 初始化选项、stdio MCP 启动和安全压缩包解压,同时移除过时的 Studio 生成和 MCP 配置页面。
  • module pack 新增 -v/--version,可为模块包写入显式版本;省略时使用 1.0.0 并显示警告。