我有一个应用程序是另一个应用程序的副本,适用于EF 4.1。在新的应用程序中,我在域项目中添加了一个nuget包引用到EF 4.3.1。
所有工作都在我的本地计算机上运行,但在服务器上会抛出以下错误:
Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
显然,某些东西仍然引用旧的实体框架4.1,但它找到的唯一的DLL是EF 4.3.1 dll。
web.config中没有对EntityFramework的引用。
如何找到仍在引用旧dll的内容?
我已从解决方案中的所有项目中删除了所有EF引用,并将EF 4.3.1包添加到每个项目中,但仍然没有乐趣。
我可以使用dependentAssembly尝试绑定重定向(参见this SO question中接受的答案)
但是,我找不到要使用的名称和标记。
尽管如此,最好还是找到问题的路线,而不仅仅是重定向绑定。
答案 0 :(得分:4)
您是否在更改引用后重新编译了应用程序,或者只是上传了新的EntityFramework.dll
文件?应用程序的库可能仍然在生产环境中引用旧版本。重新编译并重新发布。
编辑(参见评论):在记事本中打开所有.csproj文件并查找参考标签,仔细检查所有项目中是否存在旧版本。