我有一个包含 Web 应用程序和一些客户端代码的 Visual Studio 2012 解决方案。应用程序的结构方式,有一个用于数据访问的共享类库。
客户端代码需要以 .NET 4 为目标,因为我将把它部署到可能没有 .NET 4.5 的机器上。由于我控制 Web 服务器端,因此我可以为此假设 .NET 4.5。
现在,客户端和服务器端都需要使用数据访问库,因此它只需要使用.NET 4。但是,这给我带来了意想不到的问题。
数据访问库使用实体框架。作为 .NET 4,它使用 EF 4.4 版。但是,Web 应用程序还需要引用实体框架,并且是 .NET 4.5,它使用 EF 版本 5.0。
当我尝试运行应用程序时,这会导致(间歇性)错误。(我在同一台机器上从 VS2012 启动网站和客户端代码)。
如果我只是在浏览器的地址栏中输入一个 URL,该网站就可以正常工作 - 它能够使用数据访问库毫无问题地获取数据。但是,当我使用客户端应用程序时,它(通常,并非总是如此!)从 Web 端返回一个服务器错误,说它(Web 端)无法加载实体框架程序集:
无法加载文件或程序集 'EntityFramework, Version=5.0.0.0, ... 找到的程序集的清单定义与程序集引用不匹配。
我不确定这是否只是一个问题,因为我在调试器中运行,在同一台机器上,或者这是否会在部署后影响我的应用程序。
我在这里做了什么疯狂的事情,还是应该可以正常工作?