c#-我包含的外部可执行文件的路径是什么?
作者:互联网
因此,我可以使用以下代码从我的项目中成功运行带有各种参数的命令行应用程序:
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为相对路径.我不知道该怎么做.有任何想法吗?
解决方法:
您的应用程序的根目录可以通过…获取
string appRoot = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
该语句需要System.IO和System.Diagnostics才能进行编译.
您可以通过以下方式将此值追加到应用程序根目录中的子目录,例如“ data”.
string dataPath = Path.Combine(appRoot, "data");
该应用程序需要在完全信任的情况下运行才能使它们正常工作…
标签:visual-studio-2010,relative-path,c,visual-studio 来源: https://codeday.me/bug/20191201/2084038.html