混合使用.NET 2.0和3.5的DNN模块

时间:2009-10-15 18:21:10

标签: asp.net .net-3.5 .net-2.0 dotnetnuke

我正在运行一个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>

1 个答案:

答案 0 :(得分:1)

听起来安装的MS AJAX版本只是一个问题。多个版本应该能够并存(我认为)。不能告诉你确切的修复,但可能能够摆脱dll的2.X版本,然后它应该使用3X版本。