ссылаясь на другую версию той же сборки GAC - PullRequest
0 голосов
/ 31 января 2011

Я получаю это сообщение об ошибке при компиляции:

Сборка 'MyFramework [...]' использует 'System.Web.Extensions, Version = 3.5.0.0 [...]', которая имеетболее поздняя версия, чем указанная сборка 'System.Web.Extensions, Version = 1.0.61025.0 [...]'

MyProject ссылается на System.Web.Extensions 1.0 И«MyFramework», последнее в свою очередь относится к веб-расширению 3.5.Обе ссылки: Копировать local = false, Определенная версия = true .

Ошибка возникает в MyProject (не в MyFramework).Что здесь не так?

Я понимаю, что две версии одной и той же сборки не могут сосуществовать в одном и том же месте, поэтому копия local является ложной.

(Я знаю, что установка не работает, этоогромное унаследованное приложение, не может просто что-то реорганизовать.)

ОБНОВЛЕНИЕ: должно быть что-то с моим проектом.Я создал пример проекта (для 2.0, ссылаясь на веб-расширения 1.0), который использует другой пример проекта (fwk 3.5, веб-расширения 3.5) и компилирует все в порядке.(Как я и ожидал.) Поэтому я в основном смоделировал ситуацию и не смог воспроизвести проблему.Вопрос изменился на:

Что может вызвать вышеуказанное поведение?Технически, что-то не так в обновлении двух версий одной и той же сборки со строгим именем?

ОБНОВЛЕНИЕ 2: см. Принятые комментарии к ответам для определения основной причины.(«Открытые типы.») Еще нужно найти способ ее решить.

Ответы [ 2 ]

1 голос
/ 31 января 2011

Необходимо использовать внешний псевдоним для ссылки на две разные версии одной и той же сборки.

0 голосов
/ 31 января 2011

Вам необходимо добавить <bindingRedirect> в App.config.

...