在fake中设置msbuild日志详细性的最简单方法?

在fake中设置msbuild日志详细性的最简单方法?,msbuild,f#-fake,f#-fake-4,Msbuild,F# Fake,F# Fake 4,我有一个这样的目标: Target "builddotnetcode" (fun _ -> !! "../Mercury.sln" |> MSBuildRelease null "Clean,Build" |> Log "MercuryBuild - Output: " ) 我只想把冗长的内容放在某个地方。从文档中可以看出,您需要指定MSBuildParams对象的详细成员。但是,build是唯一提供传递MSBuildParams的方法。使用buildI

我有一个这样的目标:

Target "builddotnetcode" (fun _ ->
  !! "../Mercury.sln"
    |> MSBuildRelease null "Clean,Build" 
    |> Log "MercuryBuild - Output: "
)

我只想把冗长的内容放在某个地方。从文档中可以看出,您需要指定MSBuildParams对象的详细成员。但是,
build
是唯一提供传递MSBuildParams的方法。使用
build
I然后需要指定Configuration=Release属性、项目列表,并删除日志中的管道。似乎应该有一种更简单的方法,不会让我重新定义整个任务。我遗漏了什么吗?

所以我做了以下几点。我之所以这样做是因为我想为我正在构建的每个解决方案文件创建一个日志文件

let loggerConfig : list<MSBuildFileLoggerConfig> = [
  {
    Number = 1
    Filename = Some (baseDir + name + "_build.log")
    Verbosity = Some MSBuildVerbosity.Minimal
    Parameters = Some [MSBuildLogParameter.Append]
  }
]

let setParams defaults =
    { defaults with
        Verbosity = Some MSBuildVerbosity.Minimal
        Targets = ["Build"]
        MaxCpuCount = Some (Some 4)
        FileLoggers = Some loggerConfig
        ToolsVersion = Some "12.0"
        Properties =
          [
            "Optimize", "True"
            "DebugSymbols", "True"
            "Configuration", buildMode
          ]
     }
build setParams solution
  |> DoNothing