实体框架引用在调试和发布版本之间丢失

本文关键字:版本 之间 布版本 引用 框架 调试 实体 | 更新日期: 2023-09-27 17:52:47

在调试构建和发布构建之间的区别及其引用的使用中,一定有我不理解的地方。我使用实体框架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 

感谢您提供的任何指导

实体框架引用在调试和发布版本之间丢失

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

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

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

编辑:

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

Ok @Dim和@Oompiet的答案是正确的,但是有一种非常简单的方法可以通过包管理器控制台做到这一点:

Update-Package -reinstall EntityFramework

这将在解决方案级别执行,或者如果您想在项目级别执行,只需执行:

Update-Package -reinstall EntityFramework -p <YouProjectName>

切换到发布模式,然后在问题项目上重新安装实体框架,在我的情况下修复了此问题。

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

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

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

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