You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行低冗余输出的Fake(F# Make)独立控制台应用?

解决FAKE独立控制台应用冗余输出问题

要实现运行指定FAKE目标时只输出目标本身的内容,需调整FAKE的日志配置并修正代码语法问题,具体修改如下:

修正后的完整代码

open Fake.Core
open Fake.IO
open Fake.Core.Logging

let initializeContext () =
    // 初始化上下文时配置静默日志器,仅保留错误级别以上的日志
    let execContext = 
        Context.FakeExecutionContext.Create 
            false 
            "build.fsx" 
            []
            (Loggers.silent |> Loggers.withMinimumLevel LogLevel.Error)
    Context.setExecutionContext (Context.RuntimeContext.Fake execContext)

let runOrDefault args =
    try
        match args with
        | [| target |] -> Target.runOrDefault target
        | _ -> Target.runOrDefault "Run"
        0
    with e ->
        printfn "%A" e
        1

initializeContext()

// *** Define Targets ***
Target.create "Hello" (fun _ ->
  printfn "hello from FAKE!"
)

[<EntryPoint>]
let main args = runOrDefault args

关键修改说明

  1. 添加日志控制引用:引入Fake.Core.Logging命名空间,用于配置FAKE的日志输出级别
  2. 配置静默日志器:在创建FakeExecutionContext时,使用Loggers.silent配合withMinimumLevel LogLevel.Error,过滤掉FAKE自身的运行日志(如run Hello这类冗余信息)
  3. 修正语法错误:原代码中Target.create "Hello" (fun _ -缺少>,修正为fun _ ->确保代码可编译

运行验证

执行命令:

dotnet run -- Hello

此时输出仅为:

hello from FAKE!

完全符合预期。

内容的提问来源于stack exchange,提问作者jim108dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:32:17