从另一个进程启动进程会导致未处理的异常

时间:2015-10-06 10:05:03

标签: c# exception process console

我有一个运行Process的控制台应用程序。在这个控制台应用程序中,我还通过一个进程运行另一个exe

当我单击bin文件夹中的双击Run.exe时,应用程序正常工作。但是,当我通过代码运行它时,它会抛出一个未处理的异常。

enter image description here

启动控制台应用的代码:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = @"C:\_Core\Server\bin\Debug\ServerManager.exe";
Process process = new Process();
Process.Start(info);

运行另一个exe的控制台应用程序内的代码:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = @"C:\_Core\Client\bin\Debug\Run.exe";
Process process = new Process();
Process.Start(info);

1 个答案:

答案 0 :(得分:2)

启动目录可能是错误的值。试试这个:

info.FileName = @"C:\_Core\Client\bin\Debug\Run.exe";
info.WorkingDirectory = Path.GetDirectoryName(info.Filename);
Process.Start(info);

但最好的方法是从Form.Load上的被叫应用程序修复它,例如

// On the main form
private void Load() 
{
// Before doing anything, fix your current directory :
    string exeDir =  Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
    Directory.SetCurrentDirectory(exeDir);

   ..........
}