Я собираюсь создать несколько пакетов 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).