System.Web.Extensions的冲突版本的含义

时间:2010-02-23 19:03:34

标签: asp.net

我在项目中包含的其中一个库使用了System.Web.Extensions 3.5.0.0,它与我的Framework 2.0应用程序(使用C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\System.Web.Extensions.dll)冲突。我可以想到3种可能的解决方案:

  1. 忽略警告,不要更改任何内容。我不确定该应用程序如何处理这个问题。
  2. 将程序集绑定元素添加到我的web.config(见下文)
  3. 明确配置应用程序以使用不同的程序集(我认为这是可能的,但不知道如何操作)。
  4. 但是,我不确定这些决定的含义。即使我忽略了警告(解决方案1),应用程序似乎工作得非常好,但是忽略了我不完全理解的警告会让我感到烦恼......就像显示这样的警告一样。

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    

    编辑:我认为#3不会起作用,因为我引用的是AjaxControlToolKit,它有自己对System.Web.Extensions的引用。

1 个答案:

答案 0 :(得分:0)

通过在参考的属性窗口中将“特定版本”设置为true,可以将应用程序配置为使用特定版本的程序集。这会阻止全局引用解析为最新版本的程序集。

如果您不确定您的全局引用及其可能解决的问题,您可以随时将必要的.dll复制到应用程序中的本地“Libraries”文件夹并直接引用它,而不是使用全局引用。

您可能还会发现this question and answer有用。