Фальшивка запускает и убивает процесс - PullRequest
0 голосов
/ 24 января 2019

У меня довольно простой вариант использования:

  • Запустите процесс, обслуживающий приложение AspNetCore с промежуточным ПО Swagger для генерации файла swagger.json.
  • Запустите процесс, который читает указанныйswagger.json и генерирует REST-клиент C #
  • Подождите, пока не будет сгенерирован клиент C # Rest, а затем закройте приложение AspNetCore.

В настоящее время мой код выглядит следующим образом:

try
    let createProc =
        CreateProcess.fromRawCommand "dotnet" ["run"; "--project"; "FakeProcMvc"]
        |> CreateProcess.addOnStarted 
            (fun _ ->  
                CreateProcess.fromRawCommand "dotnet" ["run"; "--project"; "FakeProcWriteFile"]
                |> Proc.run
                |> ignore
            )
    let procTask =
        createProc
        |> Proc.start

    let tokenSource = new CancellationTokenSource()
    procTask.Wait(tokenSource.Token)
    tokenSource.Cancel()
with
| Failure msg -> printfn "caught: %A" msg

Но это явно не совсем верно.Запись в файл (клиент C #) работает нормально, но я не могу остановить приложение AspNetCore.

Отменяющая часть ничего не делает, и я не знаю, как получить какую-то ссылку на фактическуюпроцесс, чтобы я мог использовать Process.kill или аналогичный.

...