【问题标题】:The type 'System.Web.UI.ScriptManager' is ambiguous: it could come from assembly'System.Web.UI.ScriptManager' 类型不明确:它可能来自程序集
【发布时间】:2008-11-16 22:22:22
【问题描述】:

当我运行我的 asp.net 应用程序时出现错误

“System.Web.UI.ScriptManager”类型不明确:

我有同样的问题这个人有 http://forums.asp.net/t/1313257.aspx ,当我将 1.0.61025.0 更改为 3.5 并重新编译时,它会将其重置为 1.0.61025.0

我能做些什么来解决这个问题。我已经尝试让我的应用运行几个小时了。

谢谢

编辑~HELPPpppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp

我在 GAC 中看到了 2 个 system.web.extensions。我试图用 gacutil.exe /u system.web.ext 删除 ensions,版本=1.0.61025.0,文化=中性,PublicKeyToken=31bf3856ad364e35 Microsoft (R) .NET 全局程序集缓存实用程序。版本 2.0.50727.42 版权所有 (c) 微软公司。保留所有权利。

未知选项:版本=1.0.61025.0 我做错了什么。

编辑~我的解决方案

我去了“添加删除程序”并卸载了 Ajax Web Extensions 2.0 版本 1.0.61025.0

【问题讨论】:

    标签: asp.net ajax


    【解决方案1】:

    看起来您(可能间接地)引用了旧的 System.Web.Extensions DLL。检查您的配置文件并在您的应用程序中搜索“System.Web.Extensions”。还要确保旧版本不在您的 bin 文件夹中(并且不会被复制到那里)。

    确保您没有使用任何其他使用旧 System.Web.Extensions DLL 的库,即 AJAX Toolit 1.0.x。

    【讨论】:

      【解决方案2】:

      您需要注释掉对 System.Web.Extensions 和 System.Web.Extensions.Design 的旧引用,并在 web.config 中添加 3.5 的引用:

          <!-- <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> -->
          <!-- <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> -->
          <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      

      为防止它们被重新添加,您需要使用 gacutil 从 GAC 中删除 1.0 版本:

          C:> cd C:\Program Files\Microsoft Visual Studio 8\SDK\bin
          C:\Program Files\Microsoft Visual Studio 8\SDK\bin>gacutil /u "System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
      

      如果您必须删除引用,您可以尝试

          gacutil /u /r "System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" FILEPATH C:\WINDOWS\system32\msiexec.exe "Windows Installer"
      

      http://msdn.microsoft.com/en-us/library/ex0ss12c(v=VS.71).aspx 将是您的语法参考。以上是我试图从 Windows 安装程序中删除对 DLL 的引用,但它不起作用,因为它是注册表引用,而不是 FILEPATH 引用,或者一个 FILEPATH 可以删除,我猜。无论我需要什么,网站上都没有提供。因此,我进入了“System.Web.Extensions”的注册表。我在 HKEY_CURRENT_USER\Software\Microsoft\Installer\Assemblies\Global 下找到了它的条目,以及它的“设计”版本。在我删除了 2 个条目后,我可以使用我在那里的第一个 gacutil 命令删除它们(为“设计”重新运行它)。 &%$# 微软!!!

      -汤姆

      附:如果您没有 VS 2005 的 SDK,您也可以在 C:\WINDOWS\Microsoft.NET\Framework\v1.1* 中访问 gacutil。或者直接转到 C:\WINDOWS\Assembly 并找到正确的(小心!!)然后按 Delete。

      附言如果您有 AJAX 控制工具包并且它会自动将 1.0 DLL 刷新到您的 Bin 中,您可能会遇到这些“模糊引用”错误之一——它可能不知道是使用 GAC 还是您的 Bin 用于 3.5 DLL。在这种情况下,我必须将这些条目添加到我的 ASPX 页面的顶部:

          <%@ Assembly Name="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" %>
          <%@ Assembly Name="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" %>
      

      我可能很容易将它们制作为 1.0 版本,然后看看是否可行...

      【讨论】:

        【解决方案3】:

        更新您的项目引用并清理您的 bin 目录。 Asp.net 正在从 bin 加载以前版本的 AJAX

        确保删除: - System.Web.Extensions.dll - System.Web.Extensions.Design.dll
        - 旧版本的 AjaxToolkit.dll

        【讨论】:

          【解决方案4】:

          解决此问题的新方法是将其添加到网络配置中

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-07-17
            • 2021-11-10
            • 1970-01-01
            • 1970-01-01
            • 2011-12-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多