EntityFramework.SqlServer未部署在Web发布中

Cry*_*ton 7 asp.net-mvc entity-framework ef-code-first asp.net-mvc-3 visual-studio-2012

注意到这个奇怪的事情,也许这是一个错误,但我可能会遗漏一些东西.

假设您有两个项目的解决方案:一个是MVC3项目,另一个是数据访问的类库(实体框架模型类,数据上下文等).

类库引用EntityFramework(EF6)和EntityFramework.SqlServer库.

MVC项目引用了这个类库DAL.该DAL库可以由应用程序之外的其他代码使用,因此可以将其与Web项目分离.

无论如何,似乎在发布MVC3项目时,进程错过了将EntityFramework.SqlServer程序集复制到publish/bin目录.但是,它确实发布了基本EntityFrameworkdll以及其他库和类库本身.

有没有办法让发布者也发布所需的SqlServer驱动程序?

Cry*_*ton 16

好吧,所以在一些额外的Google-fu之后,似乎解决方法是创建一些对缺少的程序集的引用,即使代码未使用.

.NET MVC 3部署包缺少引用

我使用的解决方法是在数据上下文的构造函数中添加简单的测试行:

bool instanceExists = System.Data.Entity.SqlServer.SqlProviderServices.Instance != null;
Run Code Online (Sandbox Code Playgroud)