Ссылка на DLL из другой DLL

У меня есть прикладная программа на C #, назовем ее App.exe. Он ссылается на DLL с именем A.dll, которая, в свою очередь, ссылается на другую DLL, а именно на B.dll. Однако способ ссылки на них немного отличается. В коде A.dll он имеет прямую ссылку на B.dll (выбрав «Проект»> «Ссылки»> «Добавить B.dll»). Однако в моем App.exe есть код для загрузки A.dll во время выполнения с помощью Assembly.Load () и т. Д.

Итак, напомним,

App.exe ---- (загрузка во время выполнения) ---> A.dll ---- (прямая ссылка) ---> B.dll

Все три компонента (App.exe, A.dll и B.dll) находятся в одном каталоге, скажем, ExeDir. Теперь я хочу поместить A.dll и B.dll в подкаталог ExeDir. Я могу сделать это, используя файл App.config, в котором указан путь к A.dll, и попросив App.exe загрузить A.dll с этого пути. Все идет нормально.

Однако проблема в том, что когда я это делаю, .NET выдает ошибку, говоря, что не может найти B.dll, который находится в том же каталоге, что и A.dll. Если я верну его в исходный каталог (тот же каталог, что и App.exe), он будет работать нормально. Это означает, что я могу поместить A.dll в подкаталог, но B.dll должен находиться в исходном каталоге.

Есть ли способ сохранить обе библиотеки DLL в подкаталоге?

11
задан Sach 15 June 2018 в 22:13
поделиться