【问题标题】:The referenced component 'EntityFramework' could not be found.找不到引用的组件“EntityFramework”。
【发布时间】:2012-06-12 14:51:02
【问题描述】:

所以我在家工作时通过团队基础服务器下载了一个项目。我下载了该项目,但由于错误而无法编译。警告 2 找不到引用的组件“EntityFramework”。任何人都可以就我如何让实体框架工作提供指导。我安装了 nuget 包。

谢谢你

【问题讨论】:

  • 在所有使用数据对象的项目中?
  • 什么意思?所有使用数据库的元素都会给我编译器错误。有什么需要改变的吗?
  • 您是否使用 Nuget 恢复了软件包?它们通常不存储在源代码管理中。您是否确保解决方案中引用您的数据对象的所有项目都具有对实体框架的活动引用?这些是此类错误的常见问题。
  • 我如何确保它是一个活跃的参考?
  • 按照Nuget manager安装的包

标签: c# model-view-controller


【解决方案1】:

我建议你检查一下:

1) “允许 NuGet 在构建期间下载丢失的包”打勾

Tool --> Options... --> Package Manager --> General

2) “项目已选择”打勾

Solution Explorer --> right-click on the solution/project --> Manage NuPackages

3) 重建解决方案

编辑

为了完整起见,我想补充一点,如果您正在使用 CI 系统(例如 Jenkins)或者您在命令行上使用 MSBuild,您需要选择 启用 NuGet 包还原 以使它工作:

Enable NuGet Package Restore http://docs.nuget.org/docs/Workflows/images/enable-package-restore.png

【讨论】:

  • 不幸的是,在很多情况下启用了“允许 NuGet 下载丢失的包”,但 NuGet 仍然没有实际下载和恢复引用。我正在使用 Visual Studio 2015 Update 3。使用 NuGet 的用户体验仍远非完美。
  • @Dai:有时候,需要删除packages文件夹的内容。如果你这样做,包恢复总是不会失败的。
【解决方案2】:

我遇到了同样的问题。我是这样解决的:

  1. 选择References > 右键单击​​ > Add Reference ...
  2. 选择Browse标签
  3. 找到您的项目文件夹 > packages > EntityFramework.4.1.10331.0 > lib
  4. 选择EntityFramework.dll
  5. 点击OK

【讨论】:

  • 显然细节现在不同了(EntityFramework 自此答案以来已经进行了很多修订),但是当 NuGet 已经安装了包但项目的 dll 路径错误时,这是​​最好的解决方案.
  • 这是一个有用的答案。我最近使用 NuGet 升级了一个包的版本,但 csproj 文件中的引用没有更新到更新的 DLL。
  • 这对我有用。使用 TFS 2015 和 VS 2015,我对主代码行进行了分支,而这个引用在分支版本中被破坏了。
  • 是的,这终于对我有用了,现在我记得我在完全不同的场景中使用了这个技巧。如果你想避免在另一个项目中再次拉入整个包的层次结构,而 Visual Studio 真正想要的只是一个特定的库,因为(在这种情况下)类DbContext 继承自。
【解决方案3】:

这发生在我身上,是在我将项目移动到子文件夹之后。 然后,packages 文件夹的相对路径不再正确。

遇到这样的错误:

此项目引用此计算机上缺少的 NuGet 包。使用 NuGet 包还原下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 ..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets。项目名称 D:\VSTS\TEAMPROJECT\src\PROJECTFOLDER\PROJECTNAME.csproj

通过编辑 *.csproj 文件修复它并更正相对路径,在我的例子中从 ..\packages..\..\packages

还要确保检查下的路径

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

【讨论】:

    【解决方案4】:

    有开发者推荐的好方法,你也可以试试这个方案来解决你的问题。

    在您的情况下,您的项目引用了 EntityFramework 库,但它本身的库对您的项目不可用。您可以尝试以下任一方法:

    • 如果您有 NuGet 包管理器:

    单击项目-> 管理 NuGet 包。它将打开以下窗口。

    找到 EntityFramework 并单击安装。


    - 或者,将 EntityFramework 库下载到您的计算机,然后

    右键单击项目-> 添加引用...-> 浏览-> 找到您的 EntityFramework 库-> 点击确定


    - 您可以选择使用包管理器来安装库参考,
    检查此链接package-manager-console(注意:这可能需要 NuGet 包管理器)

    【讨论】:

      【解决方案5】:

      我通过在我的项目中添加 C:\Prog Files\Entity...\Binaries\Entity Framework.dll 下的实体框架引用(添加引用)解决了这个问题。希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2016-07-23
        • 2021-07-08
        • 1970-01-01
        • 1970-01-01
        • 2012-10-26
        • 1970-01-01
        • 2011-09-23
        • 2011-10-28
        • 2017-08-25
        相关资源
        最近更新 更多