我的目标看起来像这样:
Target "builddotnetcode" (fun _ ->
!! "../Mercury.sln"
|> MSBuildRelease null "Clean,Build"
|> Log "MercuryBuild - Output: "
)
我想简单地在某处设置详细程度。据我所知,你需要指定MSBuildParams对象的Verbosity成员。但build
是唯一提供传递MSBuildParams的方法的MSBuildHelper function。使用build
我需要指定Configuration = Release属性,项目列表,并删除到Log的管道。似乎应该有一种更简单的方法,不会让我重新定义整个任务。我错过了什么吗?
答案 0 :(得分:3)
所以我做的是以下内容。我这样做的原因是因为我想为每个正在构建的解决方案文件创建一个日志文件
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
]
}
最后,我能看到的唯一可以让你覆盖msbuilddefaults的msbuild任务是标准版本。
build setParams solution
|> DoNothing