您的位置:首页 > 其它

由vs 2005升级到vs 2008后,运行时出现错误:未能加载文件或程序集“System.Web.Extensions, Version=2.0.0.0, 怎么办?

2010-04-20 12:24 936 查看
之前,把一个项目由vs 2005升级到vs 2008,编译的时候,除了在页面中引用水晶报表的版本有点错误,其他没有出现错误。在升级的过程中,就已经提示说“必须将水晶报表的版本由2005升级到2008,否则功能将无法使用”,所以,编译的时候错误就很正常了,只要把原来的控件删除掉,重新拉一个控件,就可以了。

可是,在运行以后,打开含有水晶报表控件的页面时,却出现了以下的错误:

未能加载文件或程序集“System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040),于是我上网找,搜了好久才搜到两篇相关的文章,一篇还是英文的,需要借助翻译软件才能看懂个大概。下面是我试过可以用的代码,是加在web.config中的:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="no"/>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="1.0.61025.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>


oldVersion是当前在用的System.Web.Extensions的版本,我还是用2.0,所以这里是2.0.0.0,如果你用的是3.5.0.0,那就要改为oldVersion = 3.5.0.0,newVersion是用vs2005时的System.Web.Extensions的版本。

原文:The above configuration tells .NET to use System.Web.Extensions version 1.0.61025 instead of version 2.0.0.0. While the above does pose to be a solution to the problem, it is concerning that this would be needed at all.

翻译:上面的配置告诉。NET中使用System.Web.Extensions程序版本1.0.61025而不是版本2.0.0.0。虽然上述不构成解决问题的方法,它是有关,这将是需要的。

现在,程序可以正常使用水晶报表了。在服务器部署的时候,还需要安装CRRedist2008_x86.msi,CRRedist2008_x86_chs.msi(汉化,不是必须的)。

原文:http://geekswithblogs.net/jwhitehorn/archive/2007/07/03/113660.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐