2017-01-22 62 views
0

任何想法如何限制假构建中MSBuild任务生成的输出? 我对看到所有编译信息细节并不感兴趣,因为我有兴趣看到警告消息。缩小MSBuild详细程度以限制假构建输出

我开始使用StyleCop.Analyzers,如果我得到一个单一的警告,很难观察生成任务生成的所有消息之间。

以下是我有现在:

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

看看这个:http://stackoverflow.com/a/34006757/180286 –

回答

0

中的MSBuild帮手最普遍的辅助功能是MSBuildHelper.build。所有其他功能都是专业化的。

该函数采用一个setParams函数,它遵循一般的FAKE模式:采用默认参数结构并以某种方式对其进行修改。要设置日志级别,使用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 } 

这样,所有的MSBuild调用将使用最少的冗长。

+0

我在文档中看到,我可以使用MSBuildHelper.build,我明白,MSBuildRelease是一个专业化。 我甚至尝试过使用它,但被困在构建整个解决方案 - 我有应用程序项目和测试项目的项目分离。这就是为什么我更喜欢通过* .csproj文件构建的方法。 答案的第二部分我最喜欢的答案是它允许修复我想要的而不更改当前的解决方案。谢谢:) –

+0

'build'函数只需要一个项目(或解决方案),所以你不能一次性构建所有的项目。相反,你必须多次调用'build',迭代项目。这正是[下一个专精](https://github.com/fsharp/FAKE/blob/master/src/app/FakeLib/MSBuildHelper.fs#L424)。我同意,应该有一个中间专业化 - 一个需要多个项目,但仍然允许指定参数。但没有。 –