2017-01-22 50 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)。我同意,應該有一箇中間專業化 - 一個需要多個項目,但仍然允許指定參數。但沒有。 –