【发布时间】:2014-10-15 11:57:08
【问题描述】:
我知道 EF6 EntityFramework.SqlServer 存在问题,并将 var type = typeof(System.Data.Entity.SqlServer.SqlProviderServices); 包含在上下文构造函数中。当我在 DEBUG 模式下发布时它工作正常。
仅当我在 RELEASE 模式下发布时才会出现以下错误。原因是已发布文件夹中缺少EntityFramework.SqlServer.dll。但是,bin 文件夹有 EntityFramework.SqlServer.dll 用于调试和发布模式。
错误:
实体框架提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' 在应用程序配置文件中注册 对于具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序 无法加载。确保程序集限定名称是 并且该程序集可用于正在运行的应用程序。
为什么只有在我使用 RELEASE 模式发布时才会丢失?
【问题讨论】:
-
在解决方案资源管理器中,选择对 EntityFramework.SqlServer.dll 的引用,并确保在发布配置中将其标记为“复制到输出”并将其与调试进行比较。
-
您确定,调试和发布的数据库结构相同吗?
-
@libik:是的,两者具有相同的结构。此外,验证了调试和发布 bin 文件夹。它有 EntityFramework.SqlServer.dll。
-
@Dai:你的意思是复制本地吗?因为我的 EntityFramework.SqlServer.dll 属性中没有“复制到输出”属性。
-
向您的程序集添加属性以引用 EntityFramework.SqlServer。详情见stackoverflow.com/a/48318806/1881344
标签: c# entity-framework-6