Как сделать ссылку на несколько версий сборки - PullRequest
15 голосов
/ 07 августа 2008

Я занимаюсь разработкой приложения 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

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

1 Ответ

3 голосов
/ 22 июля 2013

Что ж, ссылка для Ошибка компилятора CS0433 довольно ясно дает понять, что проблема заключается не в нескольких версиях сборки, на которые есть ссылки, а в конфликтах пространства имен + типового имени.

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

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

...