新的netstandardapp和netcoreapp TFM之间有什么区别?
我注意到NuGet最近增加了对与.NET Core相关的几个新的TFM的支持,包括:
-
netstandard
(1.0-1.5) -
netstandardapp
(1.5) -
netcoreapp
(1.0)
据我所知, netstandard
是一个可移植configuration文件的.NET Core等价物; 它允许您使用单个名字对象来定位多个平台,而不是明确地说明您支持的每个平台,例如portable-net45+netcore45+wp81
。
同时,根据这个文档, netstandardapp
是.NET Core中的一个控制台应用程序; 它表示任何.NET Core运行时(如CoreCLR,CoreRT)。
那么, netcoreapp
应该是什么呢? 我在这里发现了跟踪问题,其中包括底部的评论,有点解释了什么区别,但我不明白什么区别
NETStandard.Library +应用程序主机
和
.NET核心库安装
是。 有人可以向我解释吗?
.NET标准库(netstandard)是跨应用程序模型的一致库。 .NET Core(netcoreapp)运行在.NET标准库之上,是一个AppModel。 从github页面,他们回答了什么是.NET标准应用程序,与.NET Core有何区别( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md )和( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md )
更新: .NETStandardapp已经过时。 NETCore应用程序取代它( https://github.com/NuGet/Home/issues/2524 )
问:什么是.NET标准应用程序? 答:.NET标准应用程序是可以在任何.NET Core运行时运行的应用程序:CoreCLR(current),.NETNative(future)。 它可以运行在许多.NET核心平台之一(Windows,OSX,Linux)上。 它依赖于给定运行时提供的主机。 这是一个由应用程序所依赖的包构build的可组合的框架。 它的程序集加载策略允许更新版本的依赖关系,而无需任何应用程序configuration(例如:BindingRedirects不是必需的)。
问:这与.NETCore有什么不同? 答:.NETCore目标框架代表Windows 8,Windows 8.1和通用Windows平台应用程序。 为了兼容性的目的,这个名字对象不能被重用于“.NET核心应用程序”。 品牌重叠是不幸的。
问:这与.NETStandard有什么不同? 答:NETStandard目标框架是一个表示许多框架和平台的API表面的抽象目标框架。 因为这样的NETStandard程序集可以在支持该程序集所针对的NETStandard的任何平台上运行,例如:.NET桌面,Windows Phone,通用Windows平台应用程序,.NET标准应用程序等。NETStandardApplication是一个具体的目标框架,平台与API表面和实现。 .NET标准应用程序可以自行运行。 .NETStandard库必须为特定的具体目标框架而被发布,以供在该types的应用程序中使用。
新的netstandardapp和netcoreapp TFM之间有什么区别?
netstandardapp
已经过时, netcoreapp
取而代之。
那么,netcoreapp应该是什么呢?
netcoreapp
是.NET核心平台的目标框架名字。 如果您将netcoreapp
添加到您的project.json的框架部分,那么您的应用程序将在.NET Core上运行。
我不明白NETStandard.Library +应用程序主机和.NET核心基地安装之间的区别。 有人可以向我解释吗?
NETStandard.Library +应用程序主机是NetStandard.App包。 不要用这个 – 已经死了。 它包括三个应用程序主机包和标准库。
-
Microsoft.NETCore.DotNetHostPolicy
-
Microsoft.NETCore.Platforms
-
Microsoft.NETCore.Runtime
-
NETStandard.Library
NET核心基本安装是Microsoft.NetCore.App包。 改用这个。 它保留上述两个软件包,将其中的两个包括在内,并添加了大约37个附加的Microsoft.*
和System.*
软件包。
- 其他
Microsoft.*
程序集 -
Microsoft.NETCore.DotNetHostPolicy
-
Microsoft.NETCore.Platforms
<-----
2016年4月,这两个成了 -
Microsoft.NETCore.Runtime
<-------
NETStandard.Library的一部分。 -
NETStandard.Library
- 附加
System.*
组件
参考
https://github.com/NuGet/Home/issues/2524 >指出netstandardapp目标框架名字对象“不再有效”。
https://github.com/dotnet/cli/issues/2482 >表示“NetStandardApp的项目需要移植到NetCoreApp,CLI 1.0.0 RC2不支持NetStandardApp”。
https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library >软件包历史logging显示2016年4月发生的重大变化。