Quelle est la différence entre le nouveau Netstandardapp et Netcoreapp TFMs?

J'ai remarqué que NuGet a récemment ajouté le support de plusieurs nouveaux TFM liés à. NET Core, y compris:

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

Au meilleur de ma connaissance, netstandard est l'équivalent. net Core d'un profil portable; il vous permet de cibler plusieurs plates-formes en utilisant un seul surnom, au lieu d'épeler explicitement chaque plate-forme que vous supportez, par exemple portable-net45+netcore45+wp81.

Pendant ce temps, selon ce document netstandardapp est plus comme une application de console dans. net Core; il représente quelque chose que tout runtime. net Core (par exemple CoreCLR, CoreRT).

Qu'est-ce que netcoreapp est censé être? J'ai trouvé le problème de suivi ici, qui comprend un commentaire en bas qui explique en quelque sorte Quelle est la différence, mais je ne comprends pas quelle est la différence entre

NETStandard.Bibliothèque + hôtes app

Et

.NET de base base installer

Est. Quelqu'un pourrait-il svp me l'expliquer?

64
demandé sur wonea 2016-05-01 07:05:29

2 réponses

La bibliothèque. net Standard (netstandard) est une bibliothèque cohérente entre les modèles d'applications. . Net Core (netcoreapp) fonctionne au-dessus de la bibliothèque Standard.net et est un AppModel. Depuis la page github, ils répondent à ce qu'est une application standard. net et à quelle différence avec. net Core (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md) et (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md)

Mise à jour: La.NETStandardapp est obsolète. L'application NETCore le remplace ( https://github.com/NuGet/Home/issues/2524)

Q: qu'est-ce qu'une application. net Standard? A: une application. net Standard est une application qui peut s'exécuter sur N'importe quel runtime .net Core: CoreCLR (current),.NETNative (avenir). Il peut fonctionner sur l'une des nombreuses plates-formes. net core (Windows, OSX, Linux). Il repose sur l'hôte fourni par le runtime donné. C'est un framework composable construit à partir des paquets dont dépend l'application. Sa politique de chargement d'assembly permet de nouvelles versions de dépendances sans aucune configuration d'application (par exemple: BindingRedirects ne sont pas requis).

Q: En quoi est-ce différent de .NETCore? Un: La .Cible NETCore cadre représente Windows 8, Windows 8.1, et Universal Windows Applications de plate-forme. À des fins de compatibilité ce surnom ne peut pas être réutilisé pour". net core applications". L'image de marque de chevauchement est malheureux.

Q: En quoi est-ce différent de .NETStandard? R: Le NETStandard target framework est un framework cible abstrait qui représente la surface de L'API de nombreux frameworks et plates-formes. En tant que tels, les assemblages NETStandard peuvent s'exécuter sur n'importe quelle plate-forme prenant en charge le NETStandard ciblé par cet assemblage, par exemple:. net Desktop, Windows Phone, Universal Windows Platform applications,. net Applications Standard, etc. NETStandardApplication est un framework cible concret qui représente une plate-forme unique avec la surface de L'API et l'implémentation. Les applications standard. net sont exécutables seules. .Les bibliothèques NETStandard doivent être publiées-pour ou consommées - par un cadre cible concret spécifique à utiliser dans ce type d'application.

Aperçu de l'innovation Future. net

36
répondu Martijn van Put 2017-05-10 05:46:02

Quelle est la différence entre le nouveau TFM netstandardapp et netcoreapp?

netstandardapp est obsolète, netcoreapp remplace.

Qu'est-ce que netcoreapp est censé être?

netcoreapp est le nom du framework cible pour la plate-forme.net Core. Si vous ajoutez netcoreapp à votre projet.la section frameworks de json, puis une version de votre application s'exécutera sur.net Core.

Je ne comprends pas quelle est la différence entre NETStandard.Bibliothèque + les hôtes de l'application et l'installation de BASE.NET Core est. Quelqu'un pourrait-il svp me l'expliquer?

NETStandard.Bibliothèque + hôtes app est le NetStandard.Package de l'application. Ne pas utiliser ce - qu'il est mort. Il comprend trois paquets d'hôte d'application et la bibliothèque standard.

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

Net Core base install est le Microsoft.NetCore.Package de l'application. Utiliser ce lieu. Il conserve deux des paquets ci dessus, supprime deux d'entre eux, et ajoute environ 37 paquets Microsoft.* et System.* supplémentaires.

  • assemblages supplémentaires Microsoft.*
  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms <----- En avril 2016, ces deux sont devenus
  • Microsoft.NETCore.Runtime <------- une partie de la NETStandard.Bibliothèque.
  • NETStandard.Library
  • assemblages supplémentaires System.*

Références à

Https://github.com/NuGet/Home/issues/2524 > indique que le cadre cible netstandardapp surnom est "n'est plus valide."

Https://github.com/dotnet/cli/issues/2482 > indique que " les projets ciblant NetStandardApp doivent être portés sur NetCoreApp. NetStandardApp ne va pas être pris en charge par CLI 1.0.0 RC2."

Https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > L'historique des paquets montre le grand changement en avril 2016.

18
répondu Shaun Luttin 2016-09-06 20:42:47