Обнаружена версия пакета вне ограничения зависимости:Microsoft.AspNetCore.App 2.1.1
Я пытаюсь установить некоторые пакеты в моем API, используя:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Выдает ошибку (приведенную ниже):
NU1608: Detected package version outside of dependency constraint: Microsoft.AspNetCore.App 2.1.1 requires Microsoft.EntityFrameworkCore.SqlServer (>= 2.1.1 && < 2.2.0) but version Microsoft.EntityFrameworkCore.SqlServer 2.2.0 was resolved.
Install-Package : NU1107: Version conflict detected for
Microsoft.EntityFrameworkCore. Install/reference Microsoft.EntityFrameworkCore
2.2.0 directly to project ChinookCoreAPI to resolve this issue.
ChinookCoreAPI -> Microsoft.EntityFrameworkCore.SqlServer 2.2.0 ->
Microsoft.EntityFrameworkCore.Relational 2.2.0 ->
Microsoft.EntityFrameworkCore (>= 2.2.0)
ChinookCoreAPI -> Microsoft.AspNetCore.App 2.1.1 ->
Microsoft.EntityFrameworkCore (>= 2.1.1 && < 2.2.0).
At line:1 char:1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManag
ement.PowerShellCmdlets.InstallPackageCommand
Install-Package : Package restore failed. Rolling back package changes for
'ChinookCoreAPI'.
At line:1 char:1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManag
ement.PowerShellCmdlets.InstallPackageCommand
Может ли кто-нибудь помочь мне решить эту проблему, поскольку я новичок в этом.
1 ответ
EF Core и ASP.NET Core (были) использовались для совместной поставки. В ASP.NET Core 2.x (Microsoft.AspNetCore.App
/ Microsoft.AspNetCore.App
метапакеты), EF Core является частью метапакетов ASP.NET Core (см. метапакет Microsoft.AspNetCore.App для ASP.NET Core 2.1).
В ASP.NET Core 3.0 EntityFrameworkCore, JSON.NET и Microsoft.CodeAnalysis не будут участвовать в Microsoft.AspNetCore.App/All
пакеты больше. Смотрите объявление GitHub.
Вы получаете эту проблему, потому что Install-Package Microsoft.EntityFrameworkCore.SqlServer
устанавливает последнюю версию EF Core (2.2), пока ваше приложение ASP.NET Core все еще находится на версии 2.1.
Или обновите ваше приложение до ASP.NET Core 2.2.
Но проблема здесь, кажется, что ChinookCoreAPI
требуется более старая версия ASP.NET Core (и EF Core), а именно 2.1. Из вашего вопроса не ясно, если вы сделали Install-Package Microsoft.EntityFrameworkCore.SqlServer
в вашем проекте приложения или на ChinookCoreAPI
, Если его на Install-Package Microsoft.EntityFrameworkCore.SqlServer
установка новейшего EF Core в проекте App должна исправить это. В противном случае понизьте версию ChinookCoreAPI
до 2.1.1
Текущая версия ASPNET Core (Microsoft.AspNetCore.App 2.1.1) не поддерживает последнюю версию EFCore (Microsoft.EntityFrameworkCore 2.2.0).
В Startup.cs уменьшите версию EF, как "Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1", и снова выполните восстановление.
Это сработало для меня.
Перейдите в настройки своего проекта и в разделе сборки установите изменение целевой версии ядра dotnet.