Подтвердить что ты не робот

Какая разница между новыми netstandardapp и netcoreapp TFM?

Я заметил, что недавно NuGet добавила поддержку нескольких новых TFM, связанных с .NET Core, включая:

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

Насколько я знаю, netstandard является эквивалентом .NET Core портативного профиля; он позволяет настроить таргетинг на несколько платформ с использованием единого прозвища, вместо того, чтобы четко указывать каждую поддерживаемую вами платформу, например. portable-net45+netcore45+wp81.

Между тем, согласно этот документ netstandardapp больше похож на консольное приложение в .NET Core; он представляет собой нечто, что любой среды выполнения .NET Core (например, CoreCLR, CoreRT).

Что же тогда должно быть netcoreapp? Я нашел для него проблему отслеживания здесь, которая содержит комментарий внизу, который объясняет, в чем разница, но я не понимаю, что разница между

NETStandard.Library + хосты приложений

и

Установка базовой платформы .NET Core

есть. Может ли кто-нибудь объяснить это мне?

4b9b3361

Ответ 1

Стандартная библиотека .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) и (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md)

UPDATE:. NETStandardapp устарел. Приложение NETCore заменяет его (https://github.com/NuGet/Home/issues/2524)

В: Что такое приложение .NET Standard? A: Стандартное приложение .NET - это приложение, которое может работать в любой среде исполнения .NET Core: CoreCLR (текущий),.NETNative(в будущем). Он может работать на одной из многих основных платформ .NET(Windows, OSX, Linux). Он полагается на хост, предоставляемый данным временем выполнения. Это составная структура, построенная из пакетов, от которых зависит приложение. Его политика загрузки сборки позволяет использовать более новые версии зависимостей без какой-либо конфигурации приложения (например: BindingRedirects не требуется).

Q: Как это отличается от .NETCore? A: Цель .NETCore Framework представляет собой Windows 8, Windows 8.1 и Universal Windows Платформенные приложения. В целях совместимости этот прозвище не может повторно использовать для "приложений .NET Core". Наложение на брендинг К сожалению.

Q: Как это отличается от .NETStandard? A: Целевая платформа NETStandard представляет собой абстрактную целевую структуру, которая представляет поверхность API многих фреймворков и платформ. Поскольку такие сборки NETStandard могут работать на любой платформе, поддерживающей NETStandard, на которую нацелена эта сборка, например:.NET Desktop, Windows Phone, Универсальные приложения Windows Platform, Стандартные приложения .NET и т.д. NETStandardApplication - это конкретная целевая структура, которая представляет собой единую платформу с поверхностью API и реализацией. Стандартные приложения .NET запускаются самостоятельно. Библиотеки .NETStandard должны быть опубликованы или использованы для конкретной конкретной целевой структуры, которая будет использоваться в этом типе приложения.

Обзор .NET Future innovation

Ответ 2

В чем разница между новыми netstandardapp и netcoreapp TFM?

netstandardapp устарел, netcoreapp заменяет его.

Что же такое netcoreapp, должно быть?

netcoreapp является целевым клиентом для платформы .NET Core. Если вы добавите netcoreapp в раздел рамки project.json, тогда на вашем .NET Framework будет построена сборка вашего приложения.

Я не понимаю, какая разница между хостами NETStandard.Library + приложений и базовой базой .NET Core. Может ли кто-нибудь объяснить это мне?

NETStandard.Library + хосты приложений - это пакет 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 года эти два пользователя стали
  • 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. NetStandardApp не будет поддерживаться CLI 1.0. 0 RC2."

https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > История пакетов показывает большие изменения в апреле 2016 года.