You can also do the following:
Process.Start(new ProcessStartInfo() { Arguments = "args", WorkingDirectory = "C:\SomePath", UseShellExecute= true, FileName = ".exe" });
There are also options on processstartinfo to redirect input and output if you need to
For instance..
Process.Start(new ProcessStartInfo() { Arguments = "C:\\Alps\\" + project_name + "\\Debug\\Main.cpp", WorkingDirectory = "C:\\Apls\\", UseShellExecute= true, FileName = "g++.exe" });
source share