Так что я был в состоянии успешно запустить приложение из командной строки с различными аргументами внутри моего проекта, используя следующий код:Каков путь к моему внешнему исполняемому файлу, который я включил?
String f = fileName;
Process process = new System.Diagnostics.Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.FileName = "C:\\projects\\something\\MediaInfo.exe";
process.StartInfo.Arguments = " \"--Inform=Video;%Duration%|%Width%|%Height%;\" \"" + f + "\"";
process.Start();
StreamReader output = process.StandardOutput;
process.WaitForExit();
MessageBox.Show(output.ReadToEnd());
Теперь, вместо абсолютного пути я указал на MediaInfo.exe я бы например, указать относительный путь, чтобы при отправке моего приложения кому-то им не нужно было гадать, разместив его в нужном месте.
В Visual Studio я выбираю свой проект и нажимаю добавить существующее. Я добавил свои файлы. Затем выберите «Всегда копировать». Я пробовал различные элементы для «Build Action». У меня есть чувство «Нет» - правильный вариант.
В любом случае, моя цель состоит в том, чтобы иметь process.StartInfo.FileName
относительный путь. Я не знаю, как это сделать правильно. Есть идеи?
Ahhh, это не правильный путь. Это дает мне некоторый путь к моему каталогу приложений. Я могу видеть файлы, скопированные в папку отладки или папку выпуска; поэтому я знаю, что они где-то копируются. Этот путь не тот, хотя. Закрыть! – Parris
Ahh нашел его! Спасибо, что указали мне в правильном направлении: String appRoot = Path.GetDirectoryName (AppDomain.CurrentDomain.BaseDirectory); – Parris