C# 引用和目标框架
在决定实现哪个版本的.NET Standard时,决定因素是类库必须运行在什么平台和框架上。如表所示,选择的.NETStandard的版本越高,可用的API(参见下表)越多,但能运行该类的平台也越少。
框架 | |||||
.NET Standard | 1.1 | 1.2 | 1,4 | 1.5 | 2.0 |
.NET Core | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 |
.NET Framework (.NET Core 2.0) | 4.5 | 4.5J | 4.6.1 | 4.6,1 | 4.6.1 |
Mono | 4.6 | 4.6 | 4.6 | 4.6 | 5.4 |
Xamarin.iOS | 10 | 10 | 10 | 10 | 10.14 |
Xamarin. Android | 7.0 | 7.0 | 7.0 | 7.0 | 8.0 |
UWP | 10 | 10 | 10 | vNext | vNext |
设想这样一个场:.NET Standard类库需要运行,面向的是.NET Core 1.0、.NET Framework 4.5.1和Xamarin.Android 7.0框架这种情况下,.NET Standard类库必须面向.NET Standard 1.2版本,因为此版本支持上述所有框架。考虑另一个场景:仍然需要面向上述所有框架,只是需要的.NET Framework版本是4.6.1。此时,.NET Standard类库应孩面向版本1.4。如果.NET Framework需要侧重在4.5版本上,则应该知道的是,4.6.1版本中也具有4.5版本的功能。旧版本的APr也包含在了新版本中,所以不需要向下降级。
不同.NET Standard版本中提供的AI>I存在巨大区别。如表所示,.NET Standard 2.0中的API数量相当大,有33 000个左右,而i.O版本中提供的API则要少得多。因此,当面向1.0版本时,能够访问执行程序所需的AH的可能性要比面向2.0版本时更小.很多情况下,“较老的”共享项目或PCL面向的是较早的.NET Framework版本,而它们并没有被移植到.NET Standard中。这意味着那些项目中的代码将无法运行,可能是因为API不存在、己被明显修改或根本不被支持。
点击加载更多评论>>