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

Я занимаюсь разработкой приложения Sharepoint и использую библиотеку .NET AjaxControlToolkit, мы добавляем пользовательскую страницу aspx в Sharepoint. Sharepoint 2007 работает в режиме причуд, поэтому я внес некоторые изменения в библиотеку 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

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

7.08.2008 16:35:33
Используете ли вы разные версии сборок в одном и том же элементе управления? Или это один и тот же проект, но разные элементы управления?
Machinegon 22.07.2013 14:32:54
1 ОТВЕТ

Хорошо, ссылка на ошибку компилятора CS0433 проясняет, что основная проблема заключается не в нескольких версиях сборки, на которые ссылаются, а в конфликтах пространства имен + типа.

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

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

5
7.09.2014 18:52:38