C#运行另一个程序而不复制.exe文件

时间:2016-09-16 11:06:30

标签: c#

我有一个程序通过使用Process.Start() - 具有完整路径的方法(如“C:\ some \ folders \ here \ externprogram.exe”)运行另一个extern程序。

我遇到的问题是,每当我点击运行它的按钮时,我的程序会将其复制到我的程序所在的文件夹中 - 并在那里运行(如“D:\ MyProgram \ externprogram.exe”) 。不幸的是,这个extern程序依赖于它旁边的其他东西,我也不想将其他东西复制到我的程序文件夹中。

有没有办法运行程序而不是复制程序?

2 个答案:

答案 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.
}