C# .NET 3.5到.NET 4.5.1迁移问题
一些背景:我最近从VS2008升级到了VS2013,一切顺利。然后,我更新了项目中每个解决方案的目标框架(一个web门户、三个服务、一个数据访问层和报告库)。更改框架后,我出现以下错误:C# .NET 3.5到.NET 4.5.1迁移问题,c#,.net,visual-studio-2013,C#,.net,Visual Studio 2013,一些背景:我最近从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, PublicKeyToke
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]"/>
这是我打电话时抛出的
DAL.App_Data.MyEntities me = new DAL.App_Data.MyEntities();
我已经检查过了,DAL和调用它的项目都引用了版本4.0.0.0的System.Data.Entity。DAL将其保存在项目文件中,另一个保存在web.config文件中 是否尝试重新添加System.Data.Entity dll?
错误表明您仍然缺少该引用。是否尝试在配置文件中添加绑定重定向
<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文件夹的内容,以确保其版本正确
更新
我假设这些编译时错误?您是否已将项目的引用更新为
System.Data.Entity
?很抱歉-我不太清楚您的意思-您能否更具体地说明“正在添加”?他可能是指删除旧的错误引用,即添加正确的引用。我曾尝试添加dependentAssembly块,但没有任何区别。我正在查看我们的bin/obj文件,其中没有任何让人想起System.Data.Entity的内容,也许这是问题的一部分?是的。如果未将程序集复制到bin文件夹,则ASP.NET在运行应用程序时无法找到它。
<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>