Сведения о вопросе

NOTtoday

16:03, 1st July, 2020

Теги

c#   .net   sharepoint   assemblies    

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

Просмотров: 455   Ответов: 1

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

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

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

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

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

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



  Сведения об ответе

PAGE

18:03, 1st July, 2020

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться