Nuget Grpc.Core软件包版本

4
注意到有一个Grpc.Core nuget包v2.23.0。几个月前我使用的是(当时认为是最新的)v1.22.0。查看GRPC发布版本,现在最新的是v1.23.1。我希望Grps.Core与grpc版本相对应。

为什么版本号会更改为2.?是否有任何重大变化?

enter image description here

2个回答

4
由于它有一个破坏性的变化,只适用于.NET,因此版本被更改为2。
对于一些用户来说是的,有两个重大的变化:
1.从System.Interactive.Async中删除了对System.Collections.Generic.IAsyncEnumerator<T>的引用。 2.引入了一个新的基类ChannelBase。
这些变化的第一个原因是因为IAsyncEnumerator<T>现在是标准库的一部分,但与System.Interactive.Async中的版本不同。基本上,旧版Grpc.Core / Grpc.Core.Api不能很好地处理它。
第二项变化是为了提供更好的共同点,以在纯.NET实现(Grpc.Net.Common等)和现有的Google实现(Grpc.Core)之间建立联系。
许多用户,特别是那些不使用流调用的用户,可以直接重建。如果您使用流调用,特别是通过 IAsyncEnumerator 进行抽象化,您可能需要做一些升级工作。
需要注意的是,如果您正在使用任何依赖项,这些依赖项反过来依赖于 Grpc.Core 1.x,则在这些依赖项更新之前,您不能在同一个项目中使用 Grpc.Core 2.x。(例如,所有 Google Cloud 客户端库当前都依赖于 1.x。我们计划在 2019 年底之前进行主要版本提升,然后依赖于 2.x。) 提案 L57 中有详细信息。

0

对于那些想知道如何将 gRPC .NET 版本与 gRPC 核心版本进行比较的人,@JonSkeets 回答中提到的这段摘录应该会有所帮助。

因此,我们将同时进行两项更改并将下一个 gRPC C# 版本发布为 v2.23.0(而不是 v1.23.0)。

我们选择版本 v2.23.0 而不是 v2.0.0,以便次要版本号仍然可以用于比较给定发行版相对于所有其他 gRPC 实现的年龄。例如,gRPC C# 2.24.x 将与 gRPC C++ 1.24.x 一起发布。

在 gRPC C# 版本 2.x 和 1.x 之间没有提出协议更改-两个版本将完全可互操作,并且还与所有其他 gRPC 实现一起使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接