在调试版本和发布版本之间的差异及其对引用的使用中,必须有一些我无法理解的东西。我使用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
感谢您提供的任何指导。
答案 0 :(得分:10)
为了解决这个问题,我使用了@ OomPiet 的答案。对我来说,步骤如下:
Solution Explorer
点击不会构建的项目(我的是一个单元测试项目)Manage NuGet Packages
Installed packages
EntityFramework
Uninstall
并关闭对话框Solution Explorer
Manage NuGet Packages for Solution
Installed packages
EntityFramework
Manage
checked
OK
并在安装后关闭对话框Solution Explorer
现在我可以在Debug
和Release
之间切换,而不会导致编译失败。我希望有帮助
修改强> 如果您只有一个使用EF的项目,请参阅下面的 @LuckyLikey 的评论,其中指出要搜索EF的,并将其安装在该项目中。
答案 1 :(得分:6)
切换到发布模式,然后在问题项目上重新安装实体框架,解决了我的问题。
答案 2 :(得分:6)
好的@Dim和@Oompiet的答案是正确的,但通过软件包管理器控制台有一个非常简单的方法:
Update-Package -reinstall EntityFramework
这将在解决方案级别执行,或者如果您想在项目级别执行此操作,请执行以下操作:
Update-Package -reinstall EntityFramework -p <YouProjectName>
答案 3 :(得分:0)
在调试模式下,程序集(pdb文件)有额外的信息。
这允许应用程序获取额外的依赖项。
在发布模式下,没有这样的东西,因此必须引用程序集。
从@Dib执行步骤10到18将解决问题。