Microsoft.Bcl.Immutable vs.System.Collections.Immutable.Net40

Microsoft.Bcl.Immutable vs.System.Collections.Immutable.Net40,.net,nuget,asp.net-4.0,.net,Nuget,Asp.net 4.0,这两个NuGet包之间有什么区别?如果我正在创建一个.NET4.51项目,我应该使用一个而不是另一个吗?我过去曾使用过Microsoft.Bcl.Immutable的beta版,但我只是想知道一个版本的维护是否比另一个更好,或者使用一个版本的优劣。微软官方只维护System.Collections.Immutable程序集的一个版本,它的目标是.NET 4.5及更新版本(作为一个可移植类库)。该库的第一个(也是目前最新的)稳定版本是1.0版,它作为NuGet包发布。继续开发这个开源库是软件包的一

这两个NuGet包之间有什么区别?如果我正在创建一个.NET4.51项目,我应该使用一个而不是另一个吗?我过去曾使用过Microsoft.Bcl.Immutable的beta版,但我只是想知道一个版本的维护是否比另一个更好,或者使用一个版本的优劣。

微软官方只维护System.Collections.Immutable程序集的一个版本,它的目标是.NET 4.5及更新版本(作为一个可移植类库)。该库的第一个(也是目前最新的)稳定版本是1.0版,它作为NuGet包发布。继续开发这个开源库是软件包的一部分,1.1版的beta版将出现在软件包中

如果您需要以.NET的旧版本为目标,则当前有两个选项

  • :这是.NET 4.0的1.0版本的后端口。它不包括强命名程序集,我也不确定它的持续状态
  • :这是当前1.1测试版的多目标后端端口,当前将返回到.NET 3.5。程序集包括强名称,并且
    [TypeForwardedTo]
    属性应用于版本,较新的目标是插入式替换。例如,.NET 4.5的构建为11KB,并将所有内容转发给System.Collections.Immutable程序集;如果在.NET 4.5环境中有引用Rackspace.Collections.Immutable的代码,则可以包含此存根,并且在运行时,.NET 3.5或4.0代码将表现为它是针对4.5版本构建的

感谢您的澄清。我一定在做一个很老的项目。它使用的是Microsoft.Bcl.Immutable 1.0.8-beta(预发布版),这就是我感到困惑的原因。我将只更新我的Microsoft.Bcl.Immutable的NuGet包,因为从您的回答来看,这是一个更稳定的包。@DanP请记住,这里的稳定性主要指API,而不是代码是否按预期运行。如果您正在开发一个供组织外部人员使用的库,那么1.0版本可能是一个更好的选择。如果您正在开发一个独立的应用程序或外部用户没有扩展的内部库,那么1.1版本可能会以非常低的风险为您提供性能改进?似乎已经消失,或者现在可能用于测试版?