代码之家  ›  专栏  ›  技术社区  ›  Brian

system.web.extensions的冲突版本的含义

  •  0
  • Brian  · 技术社区  · 14 年前

    我在项目中包含的一个库使用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. 将程序集绑定元素添加到my web.config(请参见下面的内容)
    3. 将应用程序显式配置为使用不同的程序集(我认为这是可能的,但不知道如何进行)。

    然而,我不确定这些决定的含义。即使我忽略了警告(解决方案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 回复  |  直到 14 年前
        1
  •  0
  •   Community M-A    7 年前

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

    如果您不确定全局引用以及它们可能解析为什么,则可以始终将所需的.dll复制到应用程序中的本地“库”文件夹并直接引用它,而不是使用全局引用。

    你也可以找到 this question and answer 有用的。