Привет всем!
Есть сборка A.exe. В конфиге для Unity задается отображение интерфейса IX на класс X.
Интерфейс IX живет в сборке B.dll. Класс X живет в сборке C.dll.
Сейчас в A имеются референсы на B и C, и все работает. Моя задача — избавиться от прямой зависимости между A.exe и C.dll. Если этот reference убрать, то во время работы получаю ошибку от Unity:
FileNotFound Exception
Could not load file or assembly 'C' or one of its dependencies. The system cannot find the file specified.
Смысл в том, что C.dll — это реализация интерфейсов и для основной программы там нет ничего полезного. Эту реализацию, возможно, придётся менять не один раз. Отсутствие ссылки будет гарантировать, что из основной программы никто, включая меня, случайно не завяжется на конкретную реализацию интерфейсов.
Иными словами, надо как-то научить Unity находить сборки, лежащие рядом с главной. Как бороться?
Спасибо.
Здравствуйте, SergASh, Вы писали:
SAS>Привет всем!
SAS>Есть сборка A.exe. В конфиге для Unity задается отображение интерфейса IX на класс X.
SAS>Интерфейс IX живет в сборке B.dll. Класс X живет в сборке C.dll.
SAS>Сейчас в A имеются референсы на B и C, и все работает. Моя задача — избавиться от прямой зависимости между A.exe и C.dll. Если этот reference убрать, то во время работы получаю ошибку от Unity:
SAS>FileNotFound Exception
SAS>Could not load file or assembly 'C' or one of its dependencies. The system cannot find the file specified.
SAS>Смысл в том, что C.dll — это реализация интерфейсов и для основной программы там нет ничего полезного. Эту реализацию, возможно, придётся менять не один раз. Отсутствие ссылки будет гарантировать, что из основной программы никто, включая меня, случайно не завяжется на конкретную реализацию интерфейсов.
SAS>Иными словами, надо как-то научить Unity находить сборки, лежащие рядом с главной. Как бороться?
SAS>Спасибо.
Варианта как всегда 2: сделать сборку D, которая видит всех и занимается только тем, что настравивает окружение, тогда можно зависимость A->B убрать;
другой вариант — загружить все сборки руками через Assembly.Load.