I try to redirect standard output from ResGen.exe. I use following code
ProcessStartInfo psi = new ProcessStartInfo( \"resxGen.exe\" );
psi.CreateNoWindow =
You would need to wait for the process to end after reading the stream, otherwise you have a deadlock in your code. The problem is that your parent process is blocking waiting for the child process to finish, and the child process is waiting for the parent process to read the output, hence you have a deadlock.
Here is a good and detailed description of the problem.
Changing your code like this should avoid the deadlock:
StreamReader sr = p.StandardOutput;
string message = p.StandardOutput.ReadToEnd();
p.WaitForExit();