Так что я использую некоторые отражения для вызова функции из DLL на сетевом диске. Проблема в том, что dll требует другого dll, и он находится в той же папке, но выдается исключение.
Вот мой код:
try
{
Assembly loadedDLL = Assembly.LoadFrom(@"G:\Remote\Debug\BonderControlPanelSim.dll", AppDomain.CurrentDomain.Evidence);
Type rtsObj = loadedDLL.GetType("Oe.Te.Ranorex.Instrument.BonderControlPanelSim");
Object obj = Activator.CreateInstance(rtsObj);
rtsObj.InvokeMember("Initialize", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, obj, new object[] { "COM3", 1, 2 });
Thread.Sleep(1500);
rtsObj.InvokeMember("PushStart", BindingFlags.InvokeMethod | BindingFlags.Public, null, obj, new object[] { "3" });
Thread.Sleep(200);
rtsObj.InvokeMember("Shutdown", BindingFlags.InvokeMethod | BindingFlags.Public, null, obj, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Исключение, которое я получаю, это:
{"Невозможно загрузить DLL 'SeaMAX.dll': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)"}
SeaMAX.dll требуется с BonderControlPanelSim.dll.
Моя проблема в том, что dll находится в той же папке ... но моя dll, когда отражение используется для вызова члена, не может найти dll ... но она там. Я что-то упустил