螞蟻空間

螞蟻空間

导航

升级至VS 2008出现System.Web.Extensions, Version=2.0.0.0错误的解决

一个VS 2005的WEB项目,升级到VS2008后,包括使用Crystal Report及Ajax 1.0的页面,基本上都使用正常,整个升级过程,挺顺利的

结果第二天,突然发现在一个使用Crystal Report的页面出现如下提示

Could not load file or assembly 'System.Web.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

仔细查看页面代码,除了引用CrystalDecisions相关的文件没有其他手动引用的,并且这个页面没有用到AJAX

把Crystal Report相关的去掉,就没有错误提示,但是,令人奇怪的是,另外一个用到Crystal Report的页面,就不出现错误,aspx及cs文件都是一样的使用,基本上没有什么差异。

查看WEB.CONFIG配置System.Web.Extensions都是使用1.0.61025.0的
查看项目的References System.Web.Extensions也是1.0.61025.0
在WINDOWS\assembly中System.Web.Extensions有1.0.61025.0 及3.5.0.0的

问题与http://forums.asp.net/t/1118954.aspx?PageIndex=1(Could not load file or assembly System.Web.Extensions)挺像

不过,好像这个贴子也没解决这个问题。

后来,在MSDN上查了一下,用了一个bindingRedirect把这个问题解决了。这个方法,临时的先用着吧。
修改如下

在WEB.CONFIG中
<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>

            <!--节里增加以下配置-->
            <bindingRedirect oldVersion="2.0.0.0" newVersion="1.0.61025.0"/>

        </dependentAssembly>
    </assemblyBinding>
</runtime>



posted on 2008-01-17 18:04  螞蟻  阅读(1613)  评论(1编辑  收藏  举报