What is the difference between the new netstandardapp and netcoreapp TFM?

I noticed that NuGet recently added support for several new .NET Core related TFMs, including:

  • netstandard (1.0-1.5)
  • netstandardapp (1.5)
  • netcoreapp (1.0)

As far as I know, netstandard is the equivalent of the .NET Core portable profile; it allows you to target multiple platforms using a single nickname, instead of clearly indicating each platform you support, for example. portable-net45+netcore45+wp81 .

Meanwhile, according to this document, netstandardapp more like a console application in .NET Core; it is something that any .NET Core runtime (such as CoreCLR, CoreRT).

What then should be netcoreapp ? I found a tracking problem for him here that contains a comment below that explains what the difference is, but I don't understand what the difference is between

NETStandard.Library + application hosts

and

Installing the .NET Core Core Platform

there is. Can anyone explain this to me?

+56
c # asp.net-core nuget .net-core
May 01 '16 at 4:05
source share
2 answers

The .NET Standard Library (netstandard) is a consistent library for all application models..NET Core (netcoreapp) runs on top of the .NET Standard Library and is the AppModel. On the github page, they answer what the .NET Standard application is and what is the difference with the .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 )

UPDATE:. NETStandardapp is deprecated. NETCore app replaces it ( https://github.com/NuGet/Home/issues/2524 )

Q: What is a .NET Standard application? A: A standard .NET application is an application that can work in any .NET Core runtime: CoreCLR (current) ,. NETNative (in the future). It can run on one of many major .NET platforms (Windows, OSX, Linux). It relies on the host provided by the given runtime. This is a composite structure built from the packages on which the application depends. Its assembly loading policy allows the use of newer versions of dependencies without any application configuration (for example: BindingRedirects is not required).

Q: How is this different from .NETCore? A: The goal of the .NETCore Framework is Windows 8, Windows 8.1, and Universal Windows Platform Applications. For compatibility purposes, this nickname cannot be reused for ".NET Core applications." Branding Overlay Sorry.

Q: How is this different from .NETStandard? A: The target platform NETStandard is an abstract target structure that represents the API surface of many frameworks and platforms. Since such assemblies NETStandard can work on any platform that supports NETStandard, which this assembly is aimed at, for example: .NET Desktop, Windows Phone, Universal Windows Platform Applications, Standard .NET Applications, etc. NETStandardApplication is a specific target structure, which is a single platform with an API surface and implementation. Standard .NET applications run independently. The .NETStandard libraries must be published or used for the specific concrete target structure that will be used in this type of application.

.NET Future innovation overview

+32
May 01 '16 at 8:18
source share

What is the difference between the new netstandardapp and netcoreapp TFM?

netstandardapp deprecated, netcoreapp replaces it.

What is netcoreapp supposed to be?

netcoreapp is the target client for the .NET Core platform. If you add netcoreapp to the project.json framework section, then your application build will be built on your .NET Framework.

I don’t understand what the difference is between the NETStandard.Library + application hosts and the .NET Core base. Can anyone explain this to me?

NETStandard.Library + application hosts is the NetStandard.App package. Do not use it - he is dead. It includes three application packages and a standard library.

  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms
  • Microsoft.NETCore.Runtime
  • NETStandard.Library

The basic installation of NET Core is the Microsoft.NetCore.App package. Use this instead. It stores two of the above packages, breaks off two of them, and adds about 37 additional Microsoft.* And System.* Packages.

  • Additional Microsoft.* Builds
  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms <----- In April 2016, these two users became
  • Microsoft.NETCore.Runtime <------- part of the NETStandard.Library library.
  • NETStandard.Library
  • Additional System.* Builds

References

https://github.com/NuGet/Home/issues/2524 > Reports that the netstandardapp target network proxy is "already invalid".

https://github.com/dotnet/cli/issues/2482 > Reports that "Projects destined for NetStandardApp must be migrated to NetCoreApp. NetStandardApp will not be supported by CLI 1.0. 0 RC2."

https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > Package history shows big changes in April 2016.

+15
May 01 '16 at 21:00
source share



All Articles