无法在 .NET 5 和 Visual Studio Code 中引用 Entity Framework Core

问题描述

我正在使用 Visual Studio Code 构建一个包含 .NET 5 和 Entity Framework Core 的类库。

但是,我无法引用 Entity Framework Core,并且我不断收到错误,就好像它不存在一样。

这是项目文件

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <packagereference Include="Microsoft.EntityFrameworkCore" Version="5.0.7" />
    <packagereference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.7" />
    <packagereference Include="Microsoft.EntityFrameworkCore.sqlServer" Version="5.0.7" />
    <packagereference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.7" />
  </ItemGroup>

</Project>

使用 dotnet add package

包含所有包引用

这些是我已经做过的尝试:

  • 重启OmniSharp
  • 恢复软件包 (dotnet package restore)
  • 使用较低版本的 Entity Framework Core (5.0.0)

具体问题和错误信息在这里,一直都在这里,所以没有其他智能编辑器可能会再次关闭这个问题:

结果仍然相同,我在 using 上收到一条错误消息,告诉 EntityFrameworkCore 命名空间在 Microsoft 命名空间中不存在。但是,IntelliSense 显示EntityFrameworkCore

我还能尝试什么?

解决方法

正如在问题的评论中所解释的,虽然来自 build 和 intellisense 的错误消息指向特定的 .cs 文件,但当我在这个项目上使用 dotnet build 时,没有显示任何错误。 >

但是,该项目是解决方案的一部分,其中 A 引用 B 引用 C 和 C 是有错误的项目。

构建解决方案导致错误直接指向项目 C,从而错误地认为 C 是问题所在。不是。

按照评论中的建议并在 Visual Studio 中打开解决方案,可以更好地将问题识别为解决方案中的问题。完成此操作后,就找到了问题的解决方案。

解决方案是将包含在项目 C 中的引用添加到主项目 A 中。项目 C 中的相同 Entity Framework Core 包也包含在项目 A 中,这解决了问题,使解决方案能够编译。

然而,这不是最终正确的解决方案。我收到了很多反馈,建议这不是 .NET Core 中的常见行为,我知道这也不是旧 .NET 版本中的常见行为。谜团仍然存在:为什么我需要向项目 A 添加与项目 C 相同的引用?

这个谜团的线索可能是项目 A 是一个 Azure Function 项目。但是,我不知道这会如何影响整个解决方案。

无论如何,它都在处理固定引用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...