2009-10-15 63 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