C # путь относительно сборки DLL, а не EXE - PullRequest
2 голосов
/ 04 ноября 2010

У меня есть приложение, в котором пользователи могут создавать плагины для моего приложения и помещать свои dll в папку / plugins.

Разработчикам плагинов иногда приходится ссылаться на файлы (файлы конфигурации xml и т. Д.), Которые должны храниться в соответствующей папке / plugins / plugin_app /

Однако, кажется, что когда они запускают мое приложение, относительный путь всегда задается для папки, в которой запускается EXE (мое приложение). Как мне решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

Вам необходимо вручную добавить путь к DLL, чтобы сформировать абсолютный путь.

Например:

string somePath = Path.Combine(typeof(PluginType).Assembly.Location, "Config.xml");
1 голос
/ 04 ноября 2010

Когда они ссылаются на файл, они могут ссылаться после добавления компонентов пути:

FileStream f = new FileStream(Path.Combine(mainAppDir,"plugins\\plugin_app\\filename.xml"),FileMode.Open);
...