所以,我是能夠成功地使用下面的代碼我的項目中運行的各種參數的命令行應用程序:我包含的外部可執行文件的路徑是什麼?
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中,我選擇我的項目並單擊添加現有項目。我添加了我的文件。然後選擇「始終複製」。我已經爲「構建行動」嘗試了各種項目。我有一種感覺,「無」是正確的選擇。
無論如何,我的目標是讓process.StartInfo.FileName
成爲相對路徑。我不知道如何做到這一點。有任何想法嗎?
啊,這不是正確的道路。這給了我一些我的應用程序目錄的路徑。我可以看到正在複製到我的調試文件夾或釋放文件夾的文件;所以我知道他們正在複製某處。這條道路雖然不是那一條。關! – Parris 2012-01-20 23:21:22
啊發現了!感謝您指向正確的方向:String appRoot = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory); – Parris 2012-01-20 23:24:22