У меня есть прикладная программа на С#, позвоните в App.exe. Он ссылается на DLL с именем A.dll, который, в свою очередь, ссылается на другую DLL, а именно на B.dll. Однако способ, которым они ссылаются, немного отличается. В коде A.dll он напрямую ссылается на B.dll(перейдя в Project > References > Add B.dll). Однако мой App.exe имеет код для загрузки A.dll во время выполнения с помощью Assembly.Load() и т.д.
Итак, recup, 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 в подкаталоге?