Passando pela saída do console do Process.Start diretamente

estou a usarProcess.Start de um aplicativo de linha de comando .NET para executar outro aplicativo de linha de comando. Não quero capturar a saída do aplicativo, apenas quero que ele vá diretamente para o console.

Com o programa abaixo, a saída parece simplesmente desaparecer no ar. Se eu partirCreateNoWindow no padrãofalse então eu recebo a saída em uma nova janela do console, mas quero na janela original do console.UseShellExecute <- false também é necessário caso contrárioCreateNoWindow é forçado afalse.

Eu poderia fazer algo muito mais complicado usandoRedirectStandardOutput eRedirectStandardError e depois capturar a saída e reimprimi-la, mas isso é complicado em combinação comWaitForExit, particularmente como no meu aplicativo real, eu quero usara versão que tem um tempo limite.

Existe alguma maneira de simplesmente obter a saída padrão e o erro transmitido diretamente?

O comportamento que estou vendo é confuso porque a documentação paraRedirectStandardOutput parece dizer claramente:

Quando um Processo grava texto em seu fluxo padrão, esse texto geralmente é exibido no console.

Aqui está o código de demonstração. Quando eu corro comDummyRunner.exe Eu obtenho a saída do primeiro bit de código e quando o executo comDummyRunner.exe DummyRunner.exe Eu não recebo nada. Embora o código esteja em F #, não há nada específico de F # específico sobre esse problema que eu conheça.

module DummyRunner

open System
open System.Diagnostics

[<EntryPoint>]
let main args =

    // do something when called with no arguments, just so we can call
    // this with itself as an argument to make a self-contained test
    if args.Length = 0 then
        for n = 1 to 5 do
            printfn "Waiting %d" n
            System.Threading.Thread.Sleep(1000)
        System.Environment.Exit(0)

    let cmd = args.[0]
    let cmdArgs = args.[1..]

    let startInfo = ProcessStartInfo(cmd, String.Join(" ", cmdArgs))

    startInfo.UseShellExecute <- false
    startInfo.CreateNoWindow <- true

    let p = Process.Start(startInfo)

    p.WaitForExit()
    p.ExitCode

questionAnswers(1)

yourAnswerToTheQuestion