新的 netstandardapp 和 netcoreapp TFM 之间有什么区别?
What's the difference between the new netstandardapp and netcoreapp TFMs?
我注意到 NuGet 最近添加了对几个与 .NET Core 相关的新 TFM 的支持,包括:
netstandard
(1.0-1.5)
netstandardapp
(1.5)
netcoreapp
(1.0)
据我所知,netstandard
是可移植配置文件的 .NET Core 等价物;它允许你使用一个名字来定位多个平台,而不是明确地拼出你支持的每个平台,例如portable-net45+netcore45+wp81
.
同时,根据 this document netstandardapp
更像是 .NET Core 中的控制台应用程序;它代表任何 .NET Core 运行时(例如 CoreCLR、CoreRT)。
那么,netcoreapp
究竟应该是什么?我发现了它的跟踪问题 here,,其中包括底部的评论,有点解释了区别是什么,但我不明白
之间有什么区别
NETStandard.Library + app hosts
和
.NET Core base install
是。有人可以给我解释一下吗?
.NET 标准库 (netstandard) 是跨应用程序模型的一致库。 .NET Core (netcoreapp) 在 .NET 标准库之上运行,是一个 AppModel。他们从 GitHub 页面回答什么是 .NET Standard 应用程序以及与 .NET Core 的区别 (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md) and (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md)
更新: .NETStandard 应用程序已过时。 NETCore 应用取代了它 (https://github.com/NuGet/Home/issues/2524)
Q: What is a .NET Standard application?
A: A .NET Standard application is an application that can run on any .NET Core runtime: CoreCLR (current) and .NETNative (future). It can run on one of many .NET core platforms (Windows, OS X, and Linux). It relies on the host provided by the given runtime. It's a composable framework built from the packages on which the application depends. Its assembly loading policy permits newer versions of dependencies without any application configuration (for example, BindingRedirects are not required).
Q: How is this different than .NETCore? A: The .NETCore target
framework represents Windows 8, Windows 8.1, and Universal Windows
Platform applications. For compatibility purposes this moniker cannot
be reused for “.NET Core applications”. The branding overlap is
unfortunate.
Q: How is this different than .NETStandard?
A: The NETStandard target framework is an abstract target framework that represents API surface of many frameworks and platforms. As such NETStandard assemblies can run on any platform that supports the NETStandard targeted by that assembly, for example: .NET Desktop, Windows Phone, Universal Windows Platform applications, .NET Standard applications, etc. NETStandardApplication is a concrete target framework that represents a single platform with both API surface and implementation. .NET standard applications are runnable on their own. .NETStandard libraries must be published-for or consumed-by a specific concrete target framework to be used in that type of application.
What's the difference between the new netstandardapp and netcoreapp TFMs?
netstandardapp
已过时,netcoreapp
取代它。
What, then, exactly is netcoreapp supposed to be?
netcoreapp
是 .NET Core 平台的目标框架名称。如果您将 netcoreapp
添加到 project.json 的框架部分,那么您的应用程序的构建将 运行 在 .NET Core 上。
I don't get what the difference between NETStandard.Library + app hosts and .NET Core base install is. Could someone please explain it to me?
NETStandard.Library + app hosts 是 NetStandard.App 包。不要使用这个 - 它已经死了。它包括三个应用程序主机包和标准库。
Microsoft.NETCore.DotNetHostPolicy
Microsoft.NETCore.Platforms
Microsoft.NETCore.Runtime
NETStandard.Library
NET Core 基础安装 是 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 目标框架名字对象是 "no longer valid."
https://github.com/dotnet/cli/issues/2482 > 指出 "Projects targetting NetStandardApp need to be ported to NetCoreApp. NetStandardApp is not going to be supported by CLI 1.0.0 RC2."
https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > 包历史显示 2016 年 4 月的大变化。
我注意到 NuGet 最近添加了对几个与 .NET Core 相关的新 TFM 的支持,包括:
netstandard
(1.0-1.5)netstandardapp
(1.5)netcoreapp
(1.0)
据我所知,netstandard
是可移植配置文件的 .NET Core 等价物;它允许你使用一个名字来定位多个平台,而不是明确地拼出你支持的每个平台,例如portable-net45+netcore45+wp81
.
同时,根据 this document netstandardapp
更像是 .NET Core 中的控制台应用程序;它代表任何 .NET Core 运行时(例如 CoreCLR、CoreRT)。
那么,netcoreapp
究竟应该是什么?我发现了它的跟踪问题 here,,其中包括底部的评论,有点解释了区别是什么,但我不明白
NETStandard.Library + app hosts
和
.NET Core base install
是。有人可以给我解释一下吗?
.NET 标准库 (netstandard) 是跨应用程序模型的一致库。 .NET Core (netcoreapp) 在 .NET 标准库之上运行,是一个 AppModel。他们从 GitHub 页面回答什么是 .NET Standard 应用程序以及与 .NET Core 的区别 (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md) and (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md)
更新: .NETStandard 应用程序已过时。 NETCore 应用取代了它 (https://github.com/NuGet/Home/issues/2524)
Q: What is a .NET Standard application?
A: A .NET Standard application is an application that can run on any .NET Core runtime: CoreCLR (current) and .NETNative (future). It can run on one of many .NET core platforms (Windows, OS X, and Linux). It relies on the host provided by the given runtime. It's a composable framework built from the packages on which the application depends. Its assembly loading policy permits newer versions of dependencies without any application configuration (for example, BindingRedirects are not required).Q: How is this different than .NETCore? A: The .NETCore target framework represents Windows 8, Windows 8.1, and Universal Windows Platform applications. For compatibility purposes this moniker cannot be reused for “.NET Core applications”. The branding overlap is unfortunate.
Q: How is this different than .NETStandard?
A: The NETStandard target framework is an abstract target framework that represents API surface of many frameworks and platforms. As such NETStandard assemblies can run on any platform that supports the NETStandard targeted by that assembly, for example: .NET Desktop, Windows Phone, Universal Windows Platform applications, .NET Standard applications, etc. NETStandardApplication is a concrete target framework that represents a single platform with both API surface and implementation. .NET standard applications are runnable on their own. .NETStandard libraries must be published-for or consumed-by a specific concrete target framework to be used in that type of application.
What's the difference between the new netstandardapp and netcoreapp TFMs?
netstandardapp
已过时,netcoreapp
取代它。
What, then, exactly is netcoreapp supposed to be?
netcoreapp
是 .NET Core 平台的目标框架名称。如果您将 netcoreapp
添加到 project.json 的框架部分,那么您的应用程序的构建将 运行 在 .NET Core 上。
I don't get what the difference between NETStandard.Library + app hosts and .NET Core base install is. Could someone please explain it to me?
NETStandard.Library + app hosts 是 NetStandard.App 包。不要使用这个 - 它已经死了。它包括三个应用程序主机包和标准库。
Microsoft.NETCore.DotNetHostPolicy
Microsoft.NETCore.Platforms
Microsoft.NETCore.Runtime
NETStandard.Library
NET Core 基础安装 是 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 目标框架名字对象是 "no longer valid."
https://github.com/dotnet/cli/issues/2482 > 指出 "Projects targetting NetStandardApp need to be ported to NetCoreApp. NetStandardApp is not going to be supported by CLI 1.0.0 RC2."
https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > 包历史显示 2016 年 4 月的大变化。