EntityFramework.SqlServer not deployed in web publ

2019-01-25 12:18发布

Noticed this odd thing going on, perhaps it's a bug but I might be missing something myself.

Suppose you have a solution with two projects: one is a MVC3 project, another is a class library for data access (Entity Framework model classes, data context and such).

The class library references EntityFramework (EF6) and EntityFramework.SqlServer libraries.

And the MVC project references this class library DAL. The DAL library may be used by some other code outside of the application, hence to decouple it from the web project.

Anyway, it appears that upon publishing the MVC3 project, the process misses copying the EntityFramework.SqlServer assembly to the publish/bin directory. However, it does publish base EntityFramework dll along with other libraries and the class library itself.

Is there a way to get the publisher to publish the required SqlServer driver as well?

3条回答
你好瞎i
2楼-- · 2019-01-25 12:55

Alright, so after some additional Google-fu it appears that a workaround is to create some reference to that missing assembly, even if the code is unused.

.NET MVC 3 Deployment package missing references

And the workaround I used is add simple test line in the constructor of the data context:

bool instanceExists = System.Data.Entity.SqlServer.SqlProviderServices.Instance != null;
查看更多
地球回转人心会变
3楼-- · 2019-01-25 12:58

I had the same situation. I installed EF to my web project via NuGet (I still don't use it there, just referenced to libraries) and it solve my issue.

Moreover, I can't reproduce this situation for other solution - I created new web project and referenced new lib - but deployment works.

查看更多
The star\"
4楼-- · 2019-01-25 13:20

Add entity framework package in your package file of your project

查看更多
登录 后发表回答