Рекомендуемые TargetFrameworks для пакетов NuGet - PullRequest
2 голосов
/ 21 апреля 2020

Я собираюсь создать несколько пакетов Nuget и пытаюсь найти какие-либо рекомендации по настройке целевых структур для пакетов NuGet. К сожалению, я не нашел хороших ссылок для этого (кроме документации Межплатформенный таргетинг , в которой говорится, что все библиотеки должны ссылаться на netstandard2.0).

Если я посмотрю пакеты NuSet от Microsoft они делают это совсем по-другому. Вот некоторые примеры из пакетов, связанных с расширениями:

  • Microsoft.Extensions.DependencyInjection.Abstractions относится только к netstandard2.0
  • Microsoft.Extensions.Logging относится к netcoreapp3.1 и netstandard2.0
  • Microsoft.Extensions.DependencyInjection относится к netcoreapp3.1, netstandard2.1 и netstandard2.0.
    • netstandard2.0 использует Microsoft.Bcl.AsyncInterfaces, так что это разница между этой целью и другими.
  • Microsoft.Extensions.Hosting.Abstractions относится к netcoreapp3.1 и netstandard2.0
    • Также здесь netstandard2.0 использует Microsoft.Bcl.AsyncInterfaces, но отличие состоит в том, что в этом пакете нет ссылки на netstandard2.1, которая вызывает библиотеку, ссылающуюся на netstandard2. 1 (с поддержкой интерфейсов asyn c) для ссылки на эту библиотеку, отличную от netstandard2.1?

Итак, почему все почти все новые пакеты NuGet работают включить целевую среду netcoreapp3.x, но не включить netstandard 2.1? Я вижу причину netstandard2.0, но не причину включения netcoreapp3.x без или вместо netstandard2.1.

(Причина, по которой я пишу netcoreapp3.x вместо netcoreapp3.0 и / или netcoreapp3 .1 потому, что это делается как в версиях пакетов NuGet, так и в версиях netcoreapp3.0 и netcoreapp3.1).

1 Ответ

0 голосов
/ 21 апреля 2020

Выбранная цель пакета nuget должна быть совместима с целевой структурой вашего проекта.

Полезная статья, помогающая понять разницу между NET Core и NET Standard: Demystifying. NET Core и. NET Standard

Вот таблица, которая показывает, что что. NET Основная цель поддерживает что. NET Стандарт

enter image description here

Ссылка на изображение

Здесь вы можете найти более подробную c информацию об изменениях, которые есть в NET Core 3.1.

Имейте в виду, что вы также можете добавить несколько целей фреймворка в ваш пакет nuget.

...