2008-08-07 8 views
15

Ich entwickle eine Sharepoint-Anwendung und verwende die .NET AjaxControlToolkit-Bibliothek. Wir fügen dem Sharepoint eine benutzerdefinierte aspx-Seite hinzu. Sharepoint 2007 läuft im Quirks-Modus, daher habe ich einige Änderungen an der AJAX-Bibliothek vorgenommen, damit sie sich so verhält, wie sie es normalerweise sollte. Das Problem ist, das andere Team benutzt bereits die AJAX-Bibliothek und es ist eine andere Version mit meiner. Dies führt zu einem Konflikt, da nur eine DLL im bin-Ordner mit dem gleichen Namen vorhanden sein kann.So verweisen Sie auf mehrere Versionen Assembly

Von dem, was ich weiß, .NET sollte in der Lage sein, diese Situation problemlos zu behandeln. Ich habe versucht, starken Namen und GAC, um es zu lösen, aber es bezieht sich immer noch auf die DLL im Ordner bin. Wenn sich im Ordner bin keine AjaxControlToolkit.dll befindet, kann die Anwendung die Assembly einfach nicht laden.

Wenn ich auf meine komplette Montage Informationen benutzen, wie diese

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

Es gibt mir Compilerfehler CS0433

Kann mir jemand helfen, wie mehrere Version der Assembly in einer Anwendung verwenden?

+0

Verwenden Sie die verschiedenen Baugruppenversionen in demselben Steuerelement? Oder ist es das gleiche Projekt, aber unterschiedliche Kontrollen? – Machinegon

Antwort

3

Nun der Link für Compiler Error CS0433 macht es ziemlich klar, dass das Kernproblem nicht mit mehreren Versionen der Assembly referenziert wird - aber mit Namespace + Typname Konflikte.

Wenn Sie laden/Referenz einen Typ - der Compiler nicht aus, die DLL zu laden, diese Art lösen können. Wenn Sharepoint beide Ihre DLLs-Versionen lädt (wie Sie es sagen müssen) - wird dieser Fehler immer kommen.

Simplest fix wäre die Namensräume in der neuen DLL zu ändern, da es Ihre individuellen Optimierungen hat, und Sie den Code steuern - es meist deutlich kleiner als gut.