我有一个使用EF Code First的解决方案。我最近将所有项目升级到EF 4.3(使用NuGet)。但是,之后我发现另一个包(EFHooks)不适用于该版本。
所以我决定将版本回滚到4.1.10715.0,这是我可以使用EFHooks的最新版本。
当我编译应用程序时,一切都编译好了。我可以运行所有测试并通过(单元测试,集成测试,数据库测试等)。但是,当我运行网站(mvc 3)时,它会给我一个运行时错误说明
无法加载文件或程序集“EntityFramework”或其中一个 依赖。 ...版本= 4.3.0.0等等
我已经检查了所有的packages.config和我的web.config。我已经检查了所有引用的dll版本。一切都是4.1。
我无法在我的解决方案中找到任何使用4.3的内容,但该网站正试图找到它。
我错过了我的回滚中的某些内容吗?
答案 0 :(得分:1)
要检查的要点:
web.config
是否绑定到您想要的版本\bin
文件夹包含正确版本的程序集执行iisreset
并删除C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
尝试redirecting程序集到您想要的版本
答案 1 :(得分:1)
事实证明真正的错误是我没有将我的DBContext连接到我的IoC容器。在这种情况下,Ninject。
因此,当请求DBContext时,IoC容器出错了,因为它没有连接到应用程序。
我不明白为什么它给了我它所犯的错误,但对于任何经历相同步骤的人来说,我希望如果你发现自己和我在同一个地方,这可能会有用。
所以,我需要添加的所有代码基本上都是以下内容:
Bind<ICustomSession>().To<EFDBContext>().InRequestScope();