コマンド ラインで msbuild を実行すると、コンソールにきれいな色が表示されます。
ただし、C# から実行するとProcess.Start
、出力が白黒で表示されます。色を維持するにはどうすればよいですか?
var info = new ProcessStartInfo("msbuild")
{
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true,
RedirectStandardOutput = true,
};
using (var p = Process.Start(info) )
{
p.ErrorDataReceived += (s, e) => Console.Error.WriteLine(e.Data);
p.OutputDataReceived += (s, e) => Console.WriteLine(e.Data);
p.BeginErrorReadLine();
p.BeginOutputReadLine();
p.WaitForExit();
}
また、私たちがここにいる間、私がProcess.Start
以前 に走ったよりも問題がありBeginOutputReadLine
ますか? 出力は失われますか?
モチベーション、興味のある方へ。私が取り組んでいるプロジェクトでは、カスタム ビルド ツールを使用しています (車輪の再発明)。msbuild を使用しますが、複雑な間接レイヤーの背後にあります (上記の単純化されたモデル)。msbuild の便利な色が失われます。私はそれらを保存したいと思います。