这些是Nuget包System.Memory的依赖项。我们使用较早的.Net框架版本,我注意到,如果使用4.6.1,就会有对System.Numerics.Vectors (我认为是一个框架DLL )的附加依赖,而在4.5-4.6以上的版本中并不需要这种依赖。
与正常情况相反的是,更新版本的.Net需要更多的依赖项。
这是为什么,我会看到任何不同的表现吗?

发布于 2020-08-05 09:25:53
与正常情况相反的是,更新版本的.Net需要更多的依赖项。
System.Memory包包含以下目标框架的库。
.NET框架4.5
在使用.NET Framework4.5项目中的包时,将使用来自.NET标准1.1目标的System.Memory.dll,因为这是它可以使用的最高版本,请参见此参考文献。但是,此版本不使用Vector<T>或其他向量类型。因此,它不依赖于System.Numerics.Vectors。
.NET框架4.6
与.NET Framework4.5相同,因为.NET标准1.3是.NET Framework4.6项目可以使用的最高版本。由于只提供了一个.NET标准1.1版本,所以它将回到这个版本。
.NET框架4.6.1
在使用.NET Framework4.6.1项目中的包时,将使用相应版本的System.Memory.dll。此版本使用的Vector类型仅适用于:
System.Numerics.Vectors NuGet包.NET Framework4.6.1目标依赖于System.Numerics.Vectors包,因为否则它将不可用。
..。我会看到任何不同的表现吗?
由于Vector<T>是一个SIMD-加速型,因此可能会带来性能上的好处。它用于帮助器类中的spans,其中检查了Vector.IsHardwareAccelerated,因此我猜使用Vector<T>有一个与性能相关的原因。
奖金回合
如果可以使用.NET标准,那么为什么这个包甚至有一个单独的.NET框架4.6.1目标呢?这最好在链接引用本身中解释。
..。虽然NuGet认为.NET Framework4.6.1支持.NET标准1.5到2.0,但在使用.NET标准库时存在一些问题,这些库是为从.NET Framework4.6.1项目构建的版本构建的。..。
https://stackoverflow.com/questions/63252607
复制相似问题