Proc.Fs 0.8.1

dotnet add package Proc.Fs --version 0.8.1                
NuGet\Install-Package Proc.Fs -Version 0.8.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Proc.Fs" Version="0.8.1" />                
对于支持 PackageReference 的项目,请将此 XML 节复制到项目文件中以引用包。
paket add Proc.Fs --version 0.8.1                
#r "nuget: Proc.Fs, 0.8.1"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中,以引用该包。
// Install Proc.Fs as a Cake Addin
#addin nuget:?package=Proc.Fs&version=0.8.1

// Install Proc.Fs as a Cake Tool
#tool nuget:?package=Proc.Fs&version=0.8.1                

Proc.Fs

F# 对 Proc 的绑定

Proc 是一个库,将 System.Diagnostics.Process 转换为基于流的 IObservable,可在捕获进程的真实输出的同时,还能够发出基于行的预发事件。

该库包含两个计算表达式构建器

Shell

目前处于开发中,这允许您轻松地链接多个进程调用,其中如果任何进程返回非 0 的退出代码,则执行将停止。

let _ = shell {
    exec "dotnet" "--version"
    exec "uname"
}

Exec

一个 CE,使其 真正 容易执行进程。

//executes dotnet --help
exec { run "dotnet" "--help" }

//supports lists as args too
exec { run "dotnet" ["--help"] }

如果您想了解更多关于调用信息,可以使用 exit_code_ofoutput_of 进行快速操作。

let exitCode = exec { exit_code_of "dotnet" "--help" }
let output = exec { output_of "dotnet" "--help" }

output 将同时保留退出代码和控制台输出

如果您需要更多控制进程的启动方式,可以提供以下选项。

exec {
    binary "dotnet"
    arguments "--help"
    env Map[("key", "value")]
    workingDirectory "."
    send_control_c false
    timeout (TimeSpan.FromSeconds(10))
    thread_wrap false
    filter_output (fun l -> l.Line.Contains "clean")
    validExitCode (fun i -> i <> 0)
    run
}

run 将启动进程的调用。

然而,还有其他启动它的方法。

exec {
    binary "dotnet"
    run_args ["restore"; "--help"]
}

提供参数并运行的快捷方式

let linesContainingClean = exec {
    binary "dotnet"
    arguments "--help"
    filter (fun l -> l.Line.Contains "clean")
}

运行进程,只返回与 filter 匹配的控制台输出,如果您想实际过滤写入控制台的输出,请使用 filter_output


let dotnetHelpExitCode = exec {
    binary "dotnet"
    arguments "--help"
    exit_code
}

只返回退出代码


let helpOutput = exec {
    binary "dotnet"
    arguments "--help"
    output
}

返回退出代码和完整的控制台输出。


let process = exec {
    binary "dotnet"
    arguments "--help"
    wait_until (fun l -> l.Line.Contains "clean")
}

返回已运行的进程,但只有在它确认打印了一行后才会发生。


let process = exec {
    binary "dotnet"
    arguments "--help"
    wait_until_and_disconnect (fun l -> l.Line.Contains "clean")
}

返回一个正在运行的过程,但只有在确认打印了一行之后。本版本将停止输出标准输入/输出行,这样可以避免使用不再需要的内存。

产品 兼容的以及额外的计算目标框架版本。
.NET
.NET Core
.NET Standard
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。

NuGet 包

此包不被任何 NuGet 包使用。

GitHub 仓库

此包不被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
0.8.1 902 1/16/2024
0.8.0 82 1/15/2024
0.7.3 105 1/8/2024
0.7.2 199 1/7/2024
0.7.1 91 1/6/2024
0.7.0 94 1/5/2024