我对点网标准有一些疑问,有些术语我不懂。
发布于 2018-10-23 09:16:52
实际上,.Net标准只是一系列特性;例如(这不太可能是一个,但它说明了要点),比如.Net标准的一个特性是一个File.Read函数;所以.Net标准1.0可能没有,但是.Net标准2.0可能有。因此,Windows8.1实现了.Net标准1.0,而不是.Net标准2.0;因此,通过使用v1.0,您可以支持Windows,但您不能使用该功能,因为该平台上不存在该功能。
有一个支持平台和版本这里的列表。
发布于 2018-10-23 12:13:20
当微软谈到.NET标准时,他们通常只是指.NET标准规范: API的列表,这里的名称有点混乱,所以把它看作特性。如果一个平台实现了.NET标准,它们必须提供所有这些API。在每个后续版本中,都会添加额外的API/特性,因此标准的版本越高,它的API/特性就越多。
平台是.NET标准的实现。它们由运行时(例如CLR、CoreCLR、Mono或UWP)和基类库组成。基类库或BCL必须包含标准中列出的所有API/特性。
目前,微软有四个.NET标准平台:.NET框架(4.5及以上)、.NET核心、UWP和Mono。
正如您在实现清单中所看到的,每个平台的不同版本都支持不同版本的标准。因为它们都是向后兼容的(每一个较新的版本都是-不包括一些贬义--本质上是前一个版本的超集),平台实现的标准的最高版本,它提供的API或特性越多。
因此,如果您以.NET标准2.0为目标,您可以看到有八个支持它的平台:.NET核心、.NET框架、Mono、各种Xamarin平台、UWP和Unity的最新版本。
但是,如果您以.NET标准1.0为目标,将有21个支持您的应用程序的平台:.NET Framework4.5、4.5.1、4.6、4.6.1、Mono4.6、Mono4.6.1等等。记住,它们是向后兼容的,所以所有实现.NET标准版本的平台在技术上也实现了.NET标准的1.0版本。这就是他们对“版本越低,实现的平台越多”的意思。
*我之所以这样说,是因为它们有时也会将NetStandard.Library元打包称为.NET标准,尽管这在技术上是不正确的。
https://stackoverflow.com/questions/52945248
复制相似问题