rocketmq-clients icon indicating copy to clipboard operation
rocketmq-clients copied to clipboard

RocketMQ.Client 5.2.0-rc1 依赖的 OpenTelemetry.Api 版本太旧,无法支持 System.Diagnostics.DiagnosticSource 8.0+

Open gimmickj opened this issue 1 month ago • 0 comments

Programming Language of the Client

C#

Is Your Feature Request Related to a Problem?

你好!

我们正在做一个基于 .NET 8/9 的消息系统二开,项目里广泛使用 Microsoft.Extensions.* 8.0+,因此依赖 System.Diagnostics.DiagnosticSource >= 8.0.0。当我们引用 RocketMQ.Client 5.2.0-rc1 时,NuGet 还原会报 NU1107 版本冲突:

  • 自身代码 -> Microsoft.Extensions.Hosting.Abstractions 8.0.0 -> Microsoft.Extensions.Diagnostics.Abstractions 8.0.0 -> System.Diagnostics.DiagnosticSource (>= 8.0.0)
  • 自身代码 -> RocketMQ.Client 5.2.0-rc1 -> OpenTelemetry.Api 1.3.1 -> System.Diagnostics.DiagnosticSource (>= 6.0.0 && < 8.0.0)

因为 RocketMQ.Client 固定依赖 OpenTelemetry.Api 1.3.1,DiagnosticSource 被限制在 <8.0,导致无法在任何 .NET 8+ 项目中编译通过。能否发布一个升级版(比如提升 OpenTelemetry.Api 的依赖),以允许 DiagnosticSource 8.0+?这样我们在新的 .NET 平台上集成 RocketMQ 才不会被阻塞。

环境:

  • RocketMQ.Client 5.2.0-rc1
  • .NET SDK 9.0 Preview / TargetFramework net8.0+
  • 使用 Central Package Management,默认 DiagnosticSource 版本 8.0.1

感谢!

Describe the Solution You'd Like

希望 RocketMQ.Client 升级依赖的 OpenTelemetry.Api(以及相关链路),使 System.Diagnostics.DiagnosticSource 不再被限制在 < 8.0,从而可以在 .NET 8/9 项目中直接引用。

Describe Alternatives You've Considered

尝试在我们的项目里把 DiagnosticSource 降到 7.x,但 Microsoft.Extensions.* 8.0+ 明确要求 >=8.0;也尝试直接覆盖包版本或使用 VersionOverride,都被 NuGet 拒绝。因此目前只能等待 SDK 更新。

Additional Context

  • RocketMQ.Client 5.2.0-rc1
  • .NET SDK 9.0 Preview + net8.0 目标框架
  • Central Package Management 默认 System.Diagnostics.DiagnosticSource 8.0.1
  • 还原时报 NU1107:
    • 项目 -> Microsoft.Extensions.Hosting.Abstractions 8.0.0 -> System.Diagnostics.DiagnosticSource (>=8.0.0)
    • 项目 -> RocketMQ.Client 5.2.0-rc1 -> OpenTelemetry.Api 1.3.1 -> System.Diagnostics.DiagnosticSource (>=6.0.0 && <8.0.0)

gimmickj avatar Nov 15 '25 15:11 gimmickj