У меня есть dll, который зависит от некоторых внешних файлов. У меня есть относительные пути (относительно местоположения dll) к этим файлам.Получить абсолютный путь относительно местоположения DLL
Мне нужно иметь возможность загружать/читать эти файлы из DLL.
Чтобы найти абсолютный путь к файлам я использую:
System.IO.Path.GetFullPath(filePath);
Казалось, что работает, но я обнаружил, что это на самом деле возвращает путь относительно «текущего каталога». Я обнаружил, что текущий каталог изменяется в какой-то момент из местоположения dll (и, возможно, даже не будет пути к dll).
Что является самым простым способом получить абсолютный путь к файлам относительно DLL из кода, запущенного в DLL?
Я собирался использовать следующее, но обнаружил, что она возвращает путь к EXE, который загрузил DLL, а не DLL путь:
AppDomain.CurrentDomain.BaseDirectory
Я думаю, вы можете получить имя файла из codebase: 'Assembly.GetExecutingAssembly(). CodeBase' (если вызывается внутри функции в dll of the course) –
Да. Это сработало для меня. По крайней мере, он находит полный путь к DLL (с файлом: /// preappended to the string). Введите его как ответ, и я буду отмечать его как правильное. –
Обратите внимание, что 'GetFullPath' вычисляет абсолютный путь, основанный на * current * каталоге, который может или не может совпадать с местоположением EXE, а также может изменяться во время выполнения приложения. –