0

设置:

我有一个应用程序是另一个应用程序的副本,它与 EF 4.1 一起使用。在新应用程序中,我在域项目中添加了对 EF 4.3.1 的 nuget 包引用。

一切都在我的本地机器上工作,但在服务器上抛出以下错误:

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 进行绑定重定向(请参阅此 SO question中的已接受答案)

但是,我找不到要使用的名称和标记。

尽管如此,最好还是找到问题的路径,而不是仅仅重定向绑定。

4

1 回答 1

4

您是否在更改引用后重新编译了应用程序,或者只是上传了新EntityFramework.dll文件?应用程序的库可能仍在您的生产环境中引用旧版本。重新编译并重新发布。

编辑(见评论):在记事本中打开所有 .csproj 文件并查找参考标记,仔细检查所有项目中是否不存在旧版本。

于 2012-04-17T10:30:33.070 回答