我有一个由客户端应用程序和WebApi网站组成的应用程序。
我的客户端的东西是针对.NET 4,所以我不必坚持用户安装.NET 4.5。但是,我的网站完全由我控制,所以我的目标是.NET 4.5。
有一个共享程序集,我用它来进行数据访问。它使用Entity Framework 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中创建了该项目,然后升级到发布版本。虽然这应该升级了我的项目,但我遇到了一些问题,并且还注意到了一些与新创建项目的差异。所以,为了安全起见 - 并希望绕过其他问题 - 我正在从头开始重新创建它。
所以,我的问题:为什么这突然成为一个问题,我该怎么做才能解决它?
答案 0 :(得分:4)
根据设置的程序集的代码是否需要确切的版本?如果是这样,您将需要publisher policy用于EntityFramework程序集,或bindingRedirect用于引用应用程序(Web项目)。