C# 在VS for OSX中安装实体框架核心SQL Server导致生成错误

C# 在VS for OSX中安装实体框架核心SQL Server导致生成错误,c#,macos,visual-studio,asp.net-core-webapi,C#,Macos,Visual Studio,Asp.net Core Webapi,我在Visual Studio 2017 for OSX中安装实体框架核心MSSQL时遇到问题 我运行下面的命令并正确安装了软件包,但几秒钟后,所有cs文件中都出现了红色(build?)错误 我可以做些什么来清除这些错误 dotnet添加核心udemy包Microsoft.EntityFrameworkCore.SqlServer 输出 ~/Projects/core-udemy ⑂ master +  dotnet add core-udemy package Microsoft.

我在Visual Studio 2017 for OSX中安装
实体框架核心MSSQL
时遇到问题

我运行下面的命令并正确安装了软件包,但几秒钟后,所有
cs
文件中都出现了红色(build?)错误

我可以做些什么来清除这些错误

dotnet添加核心udemy包Microsoft.EntityFrameworkCore.SqlServer

输出

 ~/Projects/core-udemy  ⑂ master +    
dotnet add core-udemy package Microsoft.EntityFrameworkCore.SqlServer
  Writing /var/folders/fw/_y4_qxxd2ls2lh_dmwrdlp000000gn/T/tmpO0Tl4b.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore.SqlServer' into project '/Users/richardcurteis/Projects/core-udemy/core-udemy/core-udemy.csproj'.
log  : Restoring packages for /Users/richardcurteis/Projects/core-udemy/core-udemy/core-udemy.csproj...
info :   CACHE https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlserver/index.json
warn : 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.3 was resolved.
error: Version conflict detected for Microsoft.EntityFrameworkCore. Install/reference Microsoft.EntityFrameworkCore 2.2.3 directly to project core-udemy to resolve this issue. 
error:  core-udemy -> Microsoft.EntityFrameworkCore.SqlServer 2.2.3 -> Microsoft.EntityFrameworkCore.Relational 2.2.3 -> Microsoft.EntityFrameworkCore (>= 2.2.3) 
error:  core-udemy -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 && < 2.2.0).
info : Package 'Microsoft.EntityFrameworkCore.SqlServer' is compatible with all the specified frameworks in project '/Users/richardcurteis/Projects/core-udemy/core-udemy/core-udemy.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore.SqlServer' version '2.2.3' added to file '/Users/richardcurteis/Projects/core-udemy/core-udemy/core-udemy.csproj'.
info : Committing restore...
log  : Generating MSBuild file /Users/richardcurteis/Projects/core-udemy/core-udemy/obj/core-udemy.csproj.nuget.g.props.
info : Writing lock file to disk. Path: /Users/richardcurteis/Projects/core-udemy/core-udemy/obj/project.assets.json
log  : Restore failed in 1.83 sec for /Users/richardcurteis/Projects/core-udemy/core-udemy/core-udemy.csproj.

通常,出现“检测到的版本冲突”错误是因为依赖关系图的版本有问题

错误:检测到Microsoft.EntityFrameworkCore的版本冲突。直接将Microsoft.EntityFrameworkCore 2.2.3安装/引用到project core udemy以解决此问题

错误:core udemy->Microsoft.EntityFrameworkCore.SqlServer 2.2.3->Microsoft.EntityFrameworkCore.Relational 2.2.3->Microsoft.EntityFrameworkCore(>=2.2.3)

错误:core udemy->Microsoft.AspNetCore.App 2.1.1->Microsoft.EntityFrameworkCore(>=2.1.1&&<2.2.0)

  • 如信息所述,您的项目依赖于
    Microsoft.AspNetCore.App v2.1.1
    ,该版本需要
    Microsoft.EntityFrameworkCore
    (2.1.1&<2.2.0)

  • 但是,通过使用
    dotnet add core udemy包Microsoft.EntityFrameworkCore.SqlServer
    ,您正在安装
    Microsoft.EntityFrameworkCore
    的“当前”版本。以下来自的屏幕截图显示您正在安装Microsoft.EntityFrameworkCore(2.2.3)

    dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.1.*
    
  • 由于您使用的是
    ASP.NET Core 2.1
    您可以使用
    --version 2.1.*
    选项安装相关软件包:

    dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.1.*
    
    它将产生如下依赖关系:

    <ItemGroup>
    
        ...
    
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.*" />
    </ItemGroup>
    
    
    ...
    
    修复版本冲突后,可以运行
    dotnet clean
    &
    dotnet restore
    &
    dotnet build
    ,然后解决第二个问题


    此外,
    Microsoft.AspNetCore.App
    (v2.1.1)元包已经设置了对
    Microsoft.EntityFrameworkCore.SqlServer(>=2.1.1&<2.2.0)

    您不需要手动添加这样的包引用