2009-10-15 58 views
1

我正在运行一个DNN 4.9.x站点,其中包含许多我们编写的自定义模块。他们都使用.NET 2.0,直到我升级其中一个使用3.5。混合使用.NET 2.0和3.5的DNN模块

现在我发现了在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 \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ 5badfcee \ f17ac744 \ assembly \ dl3 \ 69975b21 \ 004187ac_515cc701 \ System.Web.Extensions.DLL'

除了升级所有其他模块以使用3.5之外,还有什么可以做的吗?

更新:这将是更容易的我模块,其余只是升级到3.5

如果我删除了2.0版本System.Web.Extensions.dll的我得到这个:

莫非不加载文件或程序集 'System.Web.Extensions, Version = 1.0.61025.0,Culture = neutral, 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

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

+0

我正在编辑问题以包含该结果。 – AndyMcKenna 2009-10-16 16:20:20

+0

你说得对,我可以通过web.config添加到我的问题中去掉2.x。谢谢! – AndyMcKenna 2009-10-16 16:44:04