Как ссылаться на сборку нескольких версий

Я разрабатываю приложение Sharepoint и использую библиотеку .NET AjaxControlToolkit, мы добавляем пользовательскую страницу aspx к Sharepoint. Sharepoint 2007 работает в режиме quirks, поэтому я внес некоторые изменения в библиотеку AJAX, чтобы заставить его вести себя так, как обычно. Проблема в том, что другая команда уже использует библиотеку AJAX, и это другая версия с моей. Это вызывает конфликт, поскольку в папке bin с одним и тем же именем может быть только одна DLL.

Из того, что я знаю,.NET должен иметь возможность легко справляться с этой ситуацией. Я попытался использовать сильное имя и GAC для его решения, но он все еще относится к dll в папке bin. Если в папке bin нет файла AjaxControlToolkit.dll, приложение просто не сможет загрузить сборку.

Если я использую полную информацию о сборке, например,

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

Это дает мне ошибку компилятора CS0433

Может кто-нибудь помочь мне в том, как использовать несколько версий сборки в приложении?

Ответы

Ответ 1

Ну ссылка для Ошибка компилятора CS0433 делает довольно очевидным, что основная проблема связана не с несколькими версиями ссылки на сборку, а с namespace + typename.

Когда вы загружаете/ссылаетесь на тип - компилятор не может разрешить, с какой DLL загрузить этот тип. Если Sharepoint загрузит обе версии вашей DLL (как вы говорите, это необходимо) - эта ошибка всегда будет.

Простейшим решением было бы изменить пространство имен в новой DLL, так как оно имеет свои собственные настройки, и вы также четко определяете код.