我有一个程序通过使用Process.Start() - 具有完整路径的方法(如“C:\ some \ folders \ here \ externprogram.exe”)运行另一个extern程序。
我遇到的问题是,每当我点击运行它的按钮时,我的程序会将其复制到我的程序所在的文件夹中 - 并在那里运行(如“D:\ MyProgram \ externprogram.exe”) 。不幸的是,这个extern程序依赖于它旁边的其他东西,我也不想将其他东西复制到我的程序文件夹中。
有没有办法运行程序而不是复制程序?
答案 0 :(得分:1)
尝试设置WorkingDirectory
;
using (Process pp = new Process())
{
pp.StartInfo.FileName = "externalAppUrl";
pp.StartInfo.WorkingDirectory = "directoryNameToRun";
pp.Start();
}
有关详情,请查看here,
希望有所帮助。答案 1 :(得分:0)
有没有办法运行程序而不是复制程序?
是强>
Process类有一个名为ProcessStartInfo的构造函数参数。 ProcessStartInfo有一个名为WorkingDirectory的属性。此属性设置一个值,Process应该在此目录中启动。 它不会将任何文件复制到您的目录中。
<强>用法强>
ProcessStartInfo startInfo = new ProcessStartInfo(PathToYourExe)
{
WorkingDirectory = "The directory from the exe."
}
现在可以轻松开始您的流程。
using(Process process = Process.Start(startInfo))
{
// Your code while process will run.
}