【问题标题】:Easiest way to set msbuild logging verbosity in fake?在假中设置 msbuild 日志记录详细程度的最简单方法?
【发布时间】:2014-12-09 16:44:29
【问题描述】:
我有一个看起来像这样的目标:
Target "builddotnetcode" (fun _ ->
!! "../Mercury.sln"
|> MSBuildRelease null "Clean,Build"
|> Log "MercuryBuild - Output: "
)
我想在某处简单地设置详细程度。据我从文档中可以看出,您需要指定 MSBuildParams 对象的 Verbosity 成员。但是build 是唯一一个提供传递 MSBuildParams 方法的 MSBuildHelper function。使用build 然后我需要指定 Configuration=Release 属性、项目列表,并删除到日志的管道。似乎应该有一种更简单的方法,不会让我重新定义整个任务。我错过了什么吗?
【问题讨论】:
标签:
msbuild
f#-fake
f#-fake-4
【解决方案1】:
所以我做的是以下。我这样做的原因是因为我想为我正在构建的每个解决方案文件创建一个日志文件
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