2008-08-07 67 views
15

我正在開發一個Sharepoint應用程序並使用.NET AjaxControlToolkit庫,我們正在向Sharepoint添加一個自定義aspx頁面。 Sharepoint 2007以怪癖模式運行,所以我對AJAX庫進行了一些修改,以使其表現得像平常一樣。問題是,另一個團隊已經使用AJAX庫,它與我的版本不同。這會導致衝突,因爲bin文件夾中只能有一個具有相同名稱的dll。如何引用多個版本程序集

從我所知道的,.NET應該能夠很容易地處理這種情況。我試過使用強名稱和GAC來解決它,但它仍然引用bin文件夾中的dll。如果bin文件夾中沒有AjaxControlToolkit.dll,應用程序將無法加載程序集。

如果我使用我喜歡這個

<%@ 
    Register 
    tagprefix="AjaxControlToolkit" 
    namespace="AjaxControlToolkit" 
    assembly="AjaxControlToolkit, Version=1.0.299.18064, 
    PublicKeyToken=12345678abcdefgh, 
    Culture=neutral" 
%> 

完整的裝配信息,它給了我編譯器錯誤CS0433

有人可以幫助我如何在應用程序中使用組件的多個版本?

+0

你在同一個控件中使用不同的程序集版本嗎?或者它是同一個項目,但不同的控制? – Machinegon 2013-07-22 14:32:54

回答

3

那麼Compiler Error CS0433的鏈接很清楚地表明,核心問題不是被引用的多個版本的程序集 - 而是命名空間+類型名稱衝突。

當你加載/引用一個類型 - 編譯器無法解析哪個DLL來加載該類型。如果Sharepoint要加載你的DLL版本(正如你所說的那樣),這個錯誤總是會出現的。

最簡單的修復方法是更改​​新DLL中的名稱空間,因爲它具有您的自定義調整,並且您可以控制代碼 - 清楚地標記它。

相關問題