我有一个运行Process
的控制台应用程序。在这个控制台应用程序中,我还通过一个进程运行另一个exe
。
当我单击bin文件夹中的双击Run.exe
时,应用程序正常工作。但是,当我通过代码运行它时,它会抛出一个未处理的异常。
启动控制台应用的代码:
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);
答案 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);
..........
}