Обнаружена версия пакета вне ограничения зависимости: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.

Другие вопросы по тегам