2008-08-07 17 views
15

Zajmuję się tworzeniem aplikacji SharePoint i korzystania z biblioteki .NET AjaxControlToolkit, dodajemy niestandardową stronę aspx do Sharepoint. Program Sharepoint 2007 działa w trybie dziwactwa, więc wprowadziłem pewne modyfikacje do biblioteki AJAX, aby zachowywać się tak, jak powinno. Problem polega na tym, że drugi zespół korzysta już z biblioteki AJAX i jest to inna wersja niż moja. To powoduje konflikt, ponieważ może istnieć tylko jeden plik dll w folderze bin o tej samej nazwie.Jak odwołać się do wielu wersji zespołu

Z tego, co wiem, .NET powinien być w stanie łatwo poradzić sobie z tą sytuacją. Próbowałem użyć silnej nazwy i GAC, aby go rozwiązać, ale nadal odnoszą się one do biblioteki dll w folderze bin. Jeśli nie ma pliku AjaxControlToolkit.dll w folderze bin, aplikacja po prostu nie załaduje zespołu.

Jeśli używam montażu kompletnych informacji na mój jak to

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

Daje mi Błąd kompilatora CS0433

Czy ktoś może mi pomóc w jaki sposób korzystać z wielu wersji montażu w aplikacji?

+0

Czy używasz różnych wersji złożeń w tej samej kontrolce? Czy jest to ten sam projekt, ale różne kontrole? – Machinegon

Odpowiedz

3

Łącze dla Compiler Error CS0433 sprawia, że ​​jest oczywiste, że głównym problemem nie jest wiele odwołań do różnych wersji zestawu - ale z przestrzeniami nazw i konfliktami nazw.

Podczas ładowania/odniesienia typu - kompilator nie może rozstrzygnąć, z której biblioteki DLL ma zostać pobrany ten typ. Jeśli Sharepoint załaduje obie wersje DLL-ów (tak jak mówisz to musi) - ten błąd zawsze będzie przychodził.

Najprostszą poprawką byłoby zmiana przestrzeni nazw w nowej bibliotece DLL, ponieważ ma ona własne niestandardowe poprawki, a Ty kontrolujesz kod - zaznacz to wyraźnie.

Powiązane problemy