缩小MSBuild冗余度以限制假生成输出

缩小MSBuild冗余度以限制假生成输出,msbuild,f#-fake,Msbuild,F# Fake,有没有办法限制MSBuild任务在假构建中生成的输出? 与其说我对查看所有编译信息细节感兴趣,不如说我对查看警告消息感兴趣 我开始使用StyleCop.Analyzers,如果我得到一个警告,很难在构建任务生成的所有消息中观察到 以下是我现在的情况: // Target Build Application Target "BuildApp" (fun _ -> MSBuildRelease buildDir "Build" appReferences |> Log "

有没有办法限制MSBuild任务在假构建中生成的输出? 与其说我对查看所有编译信息细节感兴趣,不如说我对查看警告消息感兴趣

我开始使用StyleCop.Analyzers,如果我得到一个警告,很难在构建任务生成的所有消息中观察到

以下是我现在的情况:

// Target Build Application
Target "BuildApp" (fun _ ->
    MSBuildRelease buildDir "Build" appReferences
    |> Log "AppBuild-Output: "
)

MSBuild帮助程序中最常用的帮助程序函数是。所有其他功能都是it的专门化

此函数采用一个
setParams
函数,该函数遵循一个通用的伪模式:采用默认参数结构并以某种方式对其进行修改。要设置日志详细程度,请使用
MSBuildParameters.verbosity
字段:

Target "BuildApp" (fun _ -> 
    "Project.sln"
    |> MSBuildHelper.build (fun p ->
        { p with
             Properties = [ "OutputPath", buildDir ]
             Verbosity = Some Minimal
             Targets = [ "Build" ] } ) )
或者,您可以通过修改
MSBuildDefaults
结构来设置整个生成的详细程度:

MSBuildDefaults <- { MSBuildDefaults with Verbosity = Some Minimal }

MSBuildDefaults检查一下:我在文档中看到可以使用MSBuildHelper.build,并且我知道MSBuildRelease是一种专门化。我甚至尝试过使用它,但在构建整个解决方案时遇到了困难——我对应用程序项目和测试项目进行了项目分离。这就是为什么我更喜欢按*.csproj文件构建的方法。我最喜欢你答案的第二部分,因为它可以在不改变当前解决方案的情况下解决我想要的问题。谢谢:)构建功能只需要一个项目(或解决方案),所以你不能一次完成所有项目(或解决方案)。相反,您必须多次调用
build
,对项目进行迭代。这正是问题所在。我同意,应该有一个中间的专门化-一个需要多个项目,但仍然允许指定参数的专门化。但是没有。