Непосредственное использование пути относительно каталога приложения - плохая идея, поскольку рабочий каталог может не совпадать с каталогом приложения.Это может привести к ошибкам и дырам в безопасности.Например, вы можете запускать файлы в ненадежных каталогах.
В некоторых случаях рабочий каталог не идентичен каталогу приложения:
- Пользователь открывает файл из проводника.Тогда рабочим каталогом является каталог, в котором файл находится в
- . В зависимости от настроек Common Dialogs (OpenFileDialog, SaveFileDialog) изменяет рабочий каталог.
Так что вы должны расширить его относительнокаталог проекта.К сожалению, я не знаю ни одной чистой библиотечной функции, которая сделала бы это для вас.В простых случаях это можно сделать путем объединения относительного пути к каталогу приложения:
string appDir = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) + "\\";
const string relativePath=@"..\..\lame.exe";//Whatever relative path you want
string absolutePath=appDir+relativePath;
...
process.StartInfo.FileName =absolutePath;
...