решение проблемы конфликта сборки - ссылка на проект Visual Studio + конкретная версия - PullRequest
0 голосов
/ 15 февраля 2012

КРАТКИЙ ВОПРОС : Как я могу использовать ссылку на проект, но собрать свою сборку, чтобы ссылка была конкретной ссылкой на версию?


ДЛИННЫЙ ВОПРОС (подробнее) : Мы работаем над модульной настройкой для одного из наших приложений. Различные наборы программных компонентов загружаются вместе с зависимостями в изолированные домены приложений.

Существуют библиотеки, на которые могут ссылаться разные компоненты. В некоторых случаях мы сталкиваемся с конфликтами сборки. То есть у нас загружена новейшая версия библиотеки И старая версия и один из используемых типов (компоненты создаются с использованием отражения) должен получить что-то, чего больше нет в новой версии, то есть тип, имя которого было изменено или что-то еще, поэтому выдается исключение TypeLoadException или что-то еще, потому что он пытается извлечь тип из новой версии, даже если старая версия также была явно загружена. Кажется, что способ избежать подобных проблем - ссылаться на конкретные версии.

Насколько я понимаю, способ установить ссылку таким образом из Visual Studio состоит в том, чтобы установить для свойства Specific Version для ссылки значение true, и это можно сделать, только если вы ссылаетесь на DLL как ссылка на файл НЕ как ссылка на проект. Проблема в том, что эти другие библиотеки все еще находятся в разработке, поэтому мне, возможно, потребуется отлаживать их и во время тестов. Я хочу иметь возможность делать все полезные ссылки на проекты, которые позволяют вам делать, т.е. переходить к определениям (в основном это действительно так, чтобы я мог устанавливать точки останова при отладке и т. Д.).


В ответ на вопрос Слака, да, мне нужно запустить обе версии. Это объясняется в длинном вопросе.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2012

Решение, которое в итоге заработало, заключалось в подписывании всех рассматриваемых сборок и использовании пользовательской логики разрешения. Конкретная версия действительно не имеет к этому никакого отношения.

0 голосов
/ 15 февраля 2012

Я полагаю, что вы спрашиваете, что-то, с чем мне приходилось сталкиваться прежде, но для конкретных платформ DLL.Вы могли бы легче адаптировать это к вашим требованиям.

Как ссылаться на другую версию DLL с MSBuild

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...