Установка Microsoft.Extensions.DependencyInjection в .NET Framework 4.7.1 проект
Я думаю, что сообщение об ошибке не является точным. Когда я устанавливаю пакет nuget Microsoft.Extensions.DependencyInjection 2.0.0
в проект (Microsoft.AspNet.OData
), я получаю следующее сообщение об ошибке:
Невозможно разрешить зависимости.
Microsoft.Extensions.DependencyInjection 2.0.0 не совместимо
с ограничением Microsoft.AspNet.OData 7.0.0-beta2:
Microsoft.Extensions.DependencyInjection (> = 1.0.0 && <2.0.0) '. </p>
Это именно то, что вы сказали ", поскольку многие разработчики полностью заблокированы Microsoft.AspNet.OData, поддерживающим только DI 1.0, а не 2.0. "
Проверьте зависимости пакета Microsoft.AspNet.OData
, мы могли бы знать, что существуют строгие ограничения для зависимостей Microsoft.Extensions.DependencyInjection
и Microsoft.Extensions.DependencyInjection.Abstractions
((>= 1.0.0 && < 2.0.0)
)
Итак, это действительно проблема, что пакет Microsoft.AspNet.OData
не поддерживает DI 2.0. Многие другие сообщества также сообщают об этой проблеме на Github , но до сих пор нет никакого обходного пути и решения.
Мой текущий обходной путь :
Создать новый проект без установки пакета Microsoft.AspNet.OData
.
Установите другие зависимости пакета Microsoft.AspNet.OData
: Microsoft.OData.Core (>= 7.2.0 && < 8.0.0)
, Microsoft.AspNet.WebApi.Core (>= 5.2.2 && < 5.3.0)
и Microsoft.AspNet.WebApi.Client (>= 5.2.2 && < 5.3.0)
(последние два пакета должны быть включены в шаблон по умолчанию).
Установить пакет nuget Microsoft.Extensions.DependencyInjection 2.0.0
Установите пакет nuget Microsoft.AspNet.OData
с параметром -IgnoreDependencies
в консоли диспетчера пакетов:
пакет обновления Microsoft.AspNet.OData -IgnoreDependencies -IncludePrerelease
С этим обходным путем мы могли бы использовать Microsoft.AspNet.OData
и DI 2.0, но я мог полностью подтвердить, вызовет ли нарушение ограничения зависимости какую-либо проблему для пакета Microsoft.AspNet.OData
. Простые тесты не являются проблематичными.
Надеюсь, это поможет.