0

我有一个由客户端应用程序和 WebApi 网站组成的应用程序。

我的客户端是针对 .NET 4 的,这样我就不必坚持让用户安装 .NET 4.5。但是,我的网站完全在我的控制之下,所以我的目标是 .NET 4.5。

有一个共享程序集,我用于数据访问。它使用实体框架 5。

当我构建客户端应用程序时,使用的 DLL 版本是 4.4.xxx,而当我构建 Web 应用程序时,DLL 是 5.0.xxx。

到目前为止,我已经能够毫无问题地运行客户端应用程序,并且我也能够运行 Web 应用程序,再次没有问题。

但是,我现在从头开始重新创建了我的 Web 应用程序项目 (*),但我突然无法运行它。我在第一次调用我的数据访问程序集时收到一条 YSOD,说“无法加载文件或程序集 'EntityFramework, Version=4.4.0.0 ...”。

现在,该错误的含义非常清楚 - 它找不到数据访问程序集使用的 v4.4 DLL - 但我不明白为什么我的新项目没有问题时会出现问题与我的旧项目。据我所知,每个项目都引用了相同的 DLL。

(*) 我应该解释为什么我要重新创建我的项目。我最初在 VS 2012 RC 中创建项目,后来升级到发布版本。尽管这据说升级了我的项目,但我遇到了一些问题,并且还注意到与新创建的项目的一些差异。所以,为了安全起见——并希望能规避那些其他问题——我正在从头开始重新创建它。

所以,我的问题是:为什么这突然成为一个问题,我能做些什么来解决它?

4

1 回答 1

4

代码是否取决于设置为需要确切版本的程序集?如果是这样,您将需要EntityFramework 程序集的发布者策略或引用应用程序(Web 项目)的bindingRedirect

于 2012-09-24T11:02:18.093 回答