> This page is for SDK, version Legacy.
> For other versions, use one of these documentation indexes:
> - Current (default): https://buildwithfern.com/learn/sdks/current/llms.txt
> - Legacy: https://buildwithfern.com/learn/sdks/legacy/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 2.56.4

**`(fix):`** 修复当内联的请求体属性与路径参数具有相同 PascalCase 名称时（例如，`upload_request_id` 请求体属性与 `uploadRequestId` 路径参数冲突）包装请求生成中的重复字段错误。检测到冲突时，路径参数字段（\[JsonIgnore]）被跳过，保留请求体属性（\[JsonPropertyName]），因此单个属性序列化到 URL 路径和 JSON 请求体两处。

## 2.56.3

**`(chore):`** 移除生成的 CI 工作流的 NuGet 发布步骤中的传统反斜杠转义，现在 Eta 模板引擎不再解释 `${}` 语法。

## 2.56.2

**`(fix):`** 使查询字符串和路径参数编码符合 RFC 3986 规范，具有三个不同的编码上下文：路径段 (pchar)、查询键和查询值。每个上下文现在编码 RFC 3986 要求的确切字符。查询键排除 `&`、`=`、`+`、`#`；查询值排除 `&`、`+`、`#`（但允许 `=`）；路径段允许所有子分隔符加上 `:` 和 `@`（但编码 `/` 和 `?`）。路径参数值现在通过 `ValueConvert.ToPathParameterString` 中的 `EncodePathSegment` 进行百分号编码。此前，所有上下文共享单一字符集，路径参数不被编码。

## 2.56.1

**`(chore):`** 使用持久的 CSharpier 进程进行代码格式化。不再为每次格式化调用生成新进程，而是保持单个 `csharpier pipe-files` 进程活跃，并按需将文件输入其中。这消除了重复的 .NET 启动开销，显著加快了 SDK 生成过程中的格式化速度。

## 2.56.0

**`(feat):`** 添加 `maxRetries` 自定义配置选项以覆盖失败请求的默认最大重试次数。未指定时默认值保持为 2。