У меня довольно простой вариант использования:
- Запустите процесс, обслуживающий приложение 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 или аналогичный.