[C#] System.Diagnostics.Process の使い方

C#アプリケーションから別のアプリを立ち上げるときにこのクラスを使用するのだが、どうにもこうにもうまくいかず悩みまくった。


ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
psi.Arguments = "/c main.exe"; // main.exe は自作アプリ
Process p = Process.Start(psi);
p.WaitForExit();
かれこれ2時間ぐらい迷っただろうか、ひょっとして、FileNameに直接main.exeを指定せなあかんのちゃうやろか?
どんぴしゃ

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "/c main.exe";
Process p = Process.Start(psi);
p.WaitForExit();
ってやれば問題なく動いた。なんでcmd.exe経由やとあかんのや。。