我正在尝试开发一个执行 tfs 合并的控制台应用程序。要执行的命令是:
tf 合并 $/CodeBase/ALPHA $/CodeBase/BETA /recursive /version:C4~C6
当合并操作发生冲突时,首先会引发错误,并在我解决冲突的地方出现解决冲突窗口。在我解决冲突后,将显示最终输出。
执行 tf 合并的控制台应用程序的 c# 代码如下:
Process proc = new Process();
proc.StartInfo.FileName = "tf.exe";
proc.StartInfo.Arguments = " merge $/CodeBase/ALPHA $/CodeBase/BETA /version:C4~C6";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.Start();
proc.WaitForExit();
string line1 = proc.StandardOutput.ReadLine();
string line2 = proc.StandardError.ReadToEnd();
问题 :
该过程突然退出,仅显示初始错误消息。理想情况下,它应该等到我解决所有冲突,然后该过程将等到那时。但是因为我正在设置 proc.StartInfo.RedirectStandardError = true; ,应用程序没有等待解决冲突窗口(甚至没有启动它)。但如果我评论这一行,它工作正常,但我无法读取最终输出。
请帮帮我。
编辑:7/23
我相信我正在做异步读取操作(可能是问题)。有没有办法我可以执行同步读取???