Разделение на нестандарт и до tnet ядро - PullRequest
0 голосов
/ 30 января 2020

Наша организация создала. Net стандарт 2.0 dll, используя do tnet Core 2.2 SDK. Библиотека использует Microsoft.Extensions.Options.ConfigurationExtensions, для которых требуется та же версия, что и в SDK. Библиотека компилируется нормально, поэтому у нас есть библиотека netstandard 2.0, верно?

Наша организация позже поняла, что do tnet Core 2.2 теперь не поддерживается, но не успела сразу же go вернуться и исправьте все библиотеки, чтобы переместить их обратно в версию, поддерживаемую do tnet Core, 2.1. Это не стандарт 2.0, так что все в порядке, верно?

Сейчас мы создаем новый проект asp. net, основанный на поддерживаемом asp. net Core 2.1, и при попытке используйте эту библиотеку, которую мы обнаружили, что мы должны обновить до 2.2 из-за проблем с компиляцией. Я что-то здесь упускаю? Разве нестандартный dll не должен быть независимым от базового SDK, который использовался для его создания?

1 Ответ

0 голосов
/ 30 января 2020

Основываясь на предложениях @mason и @LexLi, я думаю, что мне удалось найти собственный ответ, более подробно изучив ошибку.

NU1107: Version conflict detected for Microsoft.Extensions.Configuration.
Install/reference Microsoft.Extensions.Configuration 2.2.0 directly to project MyAspNet to
resolve this issue. 
MyAspNet -> MyNetStandard 1.5.4 ->
  Microsoft.Extensions.Options.ConfigurationExtensions 2.2.0 ->
  Microsoft.Extensions.Configuration.Binder 2.2.0 ->
  Microsoft.Extensions.Configuration (>= 2.2.0) 
MyAspNet -> Microsoft.AspNetCore.App 2.1.1 ->
  Microsoft.Extensions.Configuration (>= 2.1.1 && < 2.2.0).

Проблема действительно не в этом. Net стандартный или SDK. На самом деле проблема связана с ASP. Net Core 2.1 зависимостью ограничения Microsoft.Extensions.Configuration (>=2.1.1 && <2.2.0). Разрешение конфликтов версий путем ссылки на следующие библиотеки позволяет компилировать приложение. Но это решение основано на. Net DLL-библиотеках Core 2.2.0, которые могут или не могут работать или поддерживаться с ASP. Net 2.1.

Microsoft.Extensions.Options.ConfigurationExtensions = 2.20
Microsoft.Extensions.DependencyInjection.Abstractions = 2.20
Microsoft.Extensions.Configuration.Binder = 2.20
Microsoft.Extensions.Configuration = 2.20
Microsoft.Extensions.Configuration.Abstractions = 2.20
Microsoft.Extensions.Primitives = 2.20

Учитывая это. Net Core 3.1 был выпущен в течение короткого времени, и похоже, что различные библиотеки все еще нуждаются в обновлении (например, последняя версия Microsoft.Extensions.Options.ConfigurationExtensions - 3.0), что в настоящее время может быть не очень хорошим вариантом. Возможны варианты либо бросить кубик с ASP. Net 2.2, который сейчас не поддерживается, либо go вернуть частную библиотеку обратно в Net Core 2.1-зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...