调试和发布版本之间缺少entity framework参考

在调试版本和发布版本之间的区别以及它对引用的使用中,必定存在一些我不理解的东西。 我正在使用Entity Framework 6连接到之前已设置的数据库。 我能够在调试模式下成功构建和运行项目。 如果我将其更改为发布模式,我会立即获得构建错误,指示无法再找到那里的名称空间和类型。 我查了一下,据我所知他们都是目标框架.Net 4.5,我看到这可能是其他人的问题。 我发现我的解决方案资源管理器中的参考文献中列出的内容没有区别。

我正在使用visual studio 2013.很高兴提供任何代码,但我不知道什么是最相关的。

我得到的一些错误:

The type or namespace name 'Entity' does not exist in the namespace System.Data' (are you missing an assembly reference?) in Holds.Context.cs The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?) in Holds.Context.cs The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?) in Holds.Context.cs 

感谢您提供的任何指导。

切换到发布模式然后在问题项目上重新安装entity framework修复了我的问题。

为了解决这个问题,我使用了@OomPiet的答案。 对我来说,步骤如下:

  1. 切换到调试模式
  2. 重建解决方案 – 构建成功
  3. 切换到发布模式
  4. 重建解决方案 – 构建失败
  5. Solution Explorer单击不会构建的项目(我的是一个unit testing项目)
  6. 右键单击项目> Manage NuGet Packages
  7. 确保选中Installed packages
  8. 选择EntityFramework
  9. 单击Uninstall并关闭对话框
  10. 单击Solution Explorer中的Solution Explorer
  11. 右键单击> Manage NuGet Packages for Solution
  12. 确保选中Installed packages
  13. 选择EntityFramework
  14. 单击Manage
  15. 确保checked导致问题的项目
  16. 安装后单击OK并关闭对话框
  17. 单击解决Solution Explorer单击Solution Explorer
  18. 右键点击’重建解决方案’

现在我可以在DebugRelease之间切换,而不会编译失败。 我希望有所帮助

编辑:如果您只有一个使用EF的项目,请参阅下面的@LuckyLikey的评论,他说明要搜索EF,并将其安装在该项目中

好的@Dim和@Oompiet的答案是正确的,但是通过软件包管理器控制台可以很容易地做到这一点:

 Update-Package -reinstall EntityFramework 

这将在解决方案级别执行,或者如果您想在项目级别执行此操作,请执行以下操作:

 Update-Package -reinstall EntityFramework -p  

在调试模式下,程序集(pdb文件)有额外的信息。

这允许应用程序获取额外的依赖项。

在发布模式下,没有这样的东西,因此必须引用程序集。

从@Dib执行步骤10到18将解决此问题。