C# 引用和目標(biāo)框架
在決定實(shí)現(xiàn)哪個版本的.NET Standard時,決定因素是類庫必須運(yùn)行在什么平臺和框架上。如表所示,選擇的.NETStandard的版本越高,可用的API(參見下表)越多,但能運(yùn)行該類的平臺也越少。
框架 | |||||
.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 |
設(shè)想這樣一個場:.NET Standard類庫需要運(yùn)行,面向的是.NET Core 1.0、.NET Framework 4.5.1和Xamarin.Android 7.0框架這種情況下,.NET Standard類庫必須面向.NET Standard 1.2版本,因?yàn)榇税姹局С稚鲜鏊锌蚣???紤]另一個場景:仍然需要面向上述所有框架,只是需要的.NET Framework版本是4.6.1。此時,.NET Standard類庫應(yīng)孩面向版本1.4。如果.NET Framework需要側(cè)重在4.5版本上,則應(yīng)該知道的是,4.6.1版本中也具有4.5版本的功能。舊版本的APr也包含在了新版本中,所以不需要向下降級。
不同.NET Standard版本中提供的AI>I存在巨大區(qū)別。如表所示,.NET Standard 2.0中的API數(shù)量相當(dāng)大,有33 000個左右,而i.O版本中提供的API則要少得多。因此,當(dāng)面向1.0版本時,能夠訪問執(zhí)行程序所需的AH的可能性要比面向2.0版本時更小.很多情況下,“較老的”共享項(xiàng)目或PCL面向的是較早的.NET Framework版本,而它們并沒有被移植到.NET Standard中。這意味著那些項(xiàng)目中的代碼將無法運(yùn)行,可能是因?yàn)锳PI不存在、己被明顯修改或根本不被支持。
點(diǎn)擊加載更多評論>>