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
私は非同期読み取り操作を行っていると思います(問題になる可能性があります)。同期読み取りを実行できる方法はありますか???