我正在运行一个DNN 4.9.x站点,其中包含我们编写的许多自定义模块。他们都使用.NET 2.0,直到我升级其中一个使用3.5。
现在我在2.0模块上收到此错误
错误CS0433:类型 'System.Web.UI.UpdatePanel'存在于 都 'C:\ Windows \组件\ GAC_MSIL \ System.Web.Extensions程序\ 3.5.0.0__31bf3856ad364e35 \ System.Web.Extensions.dll' 和 “C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \临时 ASP.NET 文件\根\ 5badfcee \ f17ac744 \组件\ DL3 \ 69975b21 \ 004187ac_515cc701 \ System.Web.Extensions.DLL'
除了升级所有其他模块以使用3.5之外,还有什么我可以做的吗?
更新:将其余模块升级到3.5
会更容易如果我删除System.Web.Extensions.dll的2.0版本,我会得到:
无法加载文件或程序集 “System.Web.Extensions程序, 版本= 1.0.61025.0,文化=中立, PublicKeyToken = 31bf3856ad364e35'或 其中一个依赖项。系统 找不到指定的文件。
我的前缀扩展名只是:
<%@ Register Assembly="System.Web.Extensions" Namespace="System.Web.UI" TagPrefix="ajx" %>
因此,除了项目的引用之外,没有指定2.0版本。我对参考文献的理解是你只需要参考一个程序集的最小版本,它将适用于未来的版本,除非有一个重大变化。
解决 我需要将它添加到我的web.config
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
答案 0 :(得分:1)
听起来安装的MS AJAX版本只是一个问题。多个版本应该能够并存(我认为)。不能告诉你确切的修复,但可能能够摆脱dll的2.X版本,然后它应该使用3X版本。