一些背景:我最近从VS2008升级到了VS2013,它顺利完成了。然后,我更新了项目中每个解决方案的目标框架(Web门户,三个服务,数据访问层和报告库)。更改框架后,我收到此错误:
Error 174 Assembly 'DAL', Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=[token]' which has a higher version than referenced assembly 'System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=[token]'
所以我将Web.Config文件中的引用更新为4.0.0.0:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=[token]"/>
这解决了当前的错误(当然),但现在我遇到了8个新的错误,这些错误都属于这种性质:
Error 174 The type 'System.Data.Objects.ObjectContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=[token]'.
当我打电话
时抛出DAL.App_Data.MyEntities me = new DAL.App_Data.MyEntities();
我已经检查过,DAL和它正在调用的项目都引用了版本4.0.0.0的System.Data.Entity。 DAL在项目文件中有它,另一个在web.config文件中有它。
答案 0 :(得分:1)
您是否尝试在配置文件中添加绑定重定向?
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.Entity" publicKeyToken="[token]" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
即使VS告诉您dll版本为4.0,也请仔细检查您的bin文件夹。它可能挂在旧版本上。您始终可以从bin和obj文件夹中删除文件,然后重建。重建后,再次仔细检查实际复制到bin文件夹的内容,以确保它是正确的版本。
<强>更新强>
答案 1 :(得分:0)
您是否尝试过重新添加System.Data.Entity dll? 该错误表明您仍然缺少该引用。