Process.start используется для запуска браузера, но теперь он устарел
Если я пройду руководство «Как начать» для Saturn:
https://saturnframework.org/tutorials/how-to-start.html
когда я запускаю последний шаг:
dotnet fake build -t run
веб-сервер действительно запускается. Я могу зайти на http://localhost:8085/books и посмотреть получившееся приложение.
Однако, если я нажму ctrl-c на консоли, чтобы остановить веб-сервер, я замечу следующее:
Если я посмотрю на , он содержит следующую строку:
Process.start (fun i -> { i with FileName = "http://localhost:8085" }) |> ignore
внутри цели:
Target.create "Run" (fun _ ->
let server = async {
DotNet.exec (fun p -> { p with WorkingDirectory = appPath } ) "watch" "run" |> ignore
}
let browser = async {
Thread.Sleep 5000
Process.start (fun i -> { i with FileName = "http://localhost:8085" }) |> ignore
}
[ server; browser]
|> Async.Parallel
|> Async.RunSynchronously
|> ignore
)
Так что, похоже, намерение
Run
Цель состоит в том, чтобы запустить браузер для нас.
Предупреждение в выводе выше указывает:
Warning FS0044: This construct is deprecated. use the CreateProcess APIs instead.
На странице Just start a process в документации Fake есть несколько примеров. Отходя от них, я использовал измененный
build.fsx
использовать следующую строку:
CreateProcess.fromRawCommand "cmd.exe" [ "/C"; "start http://localhost:8085" ] |> Proc.run |> ignore
И это действительно, кажется, работает.
Пара вопросов:
- Это рекомендуемый способ добиться чего-то подобного?
- Можно ожидать, что вышеизложенное будет работать только в Windows. Есть ли кроссплатформенный способ открыть URL-адрес в браузере с помощью Fake?
Примечание
Если вы решили пройти руководство Saturn "Как начать", рекомендую удалить файл
global.json
после шага 3. По умолчанию в настоящее время выполняется поиск определенной версии .NET SDK. Для решения этой проблемы открыт запрос на включение.
Спасибо!
1 ответ
Вы можете увидеть источник Plotly.NET для запуска браузера: https://github.com/plotly/Plotly.NET/blob/62f297649320783ea0e64725ff4703bb225268d0/src/Plotly.NET/ChartExtensions.fs#L16