我正在尝试使用以下方法在我的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
由于我是新手,有人可以帮我解决这个问题吗?
答案 0 :(得分:4)
EF Core和ASP.NET Core(曾经)一起提供。在ASP.NET Core 2.x(Microsoft.AspNetCore.App
/ Microsoft.AspNetCore.App
元软件包)中,EF Core是ASP.NET Core元软件包的一部分(请参见Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1)。
有了ASP.NET Core 3.0,EntityFrameworkCore,JSON.NET和Microsoft.CodeAnalysis将不再是Microsoft.AspNetCore.App/All
软件包的成员。请参见GitHub announcement。
您会遇到此问题,因为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
上安装了App项目上的最新EF Core,则应对其进行修复。否则,将ChinookCoreAPI
的版本降低到2.1.1
答案 1 :(得分:1)
您当前的ASPNET Core版本(Microsoft.AspNetCore.App 2.1.1)不支持最新版本的EFCore(Microsoft.EntityFrameworkCore 2.2.0)。
在Startup.cs中,将EF版本降低为 “ Microsoft.EntityFrameworkCore.SqlServer”版本=“ 2.1.1” 然后再次还原。
这对我有用。
答案 2 :(得分:0)
转到您的项目设置,然后在构建下,设置更改目标dotnet核心版本