在 MSBuild 編譯項目時阻止輸出所有的警告資訊
- 2020 年 2 月 10 日
- 筆記
大型舊項目可能存在大量的 Warning,在編譯之後 Visual Studio 會給出大量的警告。Visual Studio 中可以直接點掉警告,然而如果是通過命令行 msbuild 編譯的,那如何不要讓警告輸出呢?
在使用 msbuild 命令編譯項目的時候,如果存在大量的警告,輸出量會非常多。如果我們使用 msbuild 命令編譯來定位項目的編譯錯誤,那麼這些警告將會導致我們準確查找錯誤的效率明顯降低。
當然,這種問題的首選解決方案是 —— 真的修復掉這些警告!!!
那麼可以用什麼方式臨時關閉 msbuild 命令編譯時的警告呢?可以輸入如下命令:
msbuild /p:WarningLevel=0
這樣在調試編譯問題的時候,因警告而造成的大量輸出資訊就會少很多。
不過需要注意的是,這種方式不會關閉所有的警告,實際上這關閉的是 csc 命令的警告(CS
開頭)。關於 csc 命令的警告可以參見:-warn (C# Compiler Options) – Microsoft Docs。於是,如果項目中存在 msbuild 的警告(MSB
開頭),此方法依然還會輸出,只不過如果是為了調試編譯問題,那麼依然會方便很多,因為 MSB
開頭的警告會少非常多。
關於警告等級:
0
關閉所有的警告。1
僅顯示嚴重警告。2
顯示 1 級的警告以及某些不太嚴重的警告,例如有關隱藏類成員的警告。3
顯示級別 2 警告以及某些不太嚴重的警告,例如關於始終評估為true
或false
的表達式的警告。4
默認值 顯示所有 3 級警告和普通訊息警告。
參考資料
- command line – How to suppress specific MSBuild warning – Stack Overflow
- command line – How to suppress all warnings using MSBuild – Stack Overflow
- visual studio 2013 – How to have MSBuild quiet output but with error/warning summary – Stack Overflow
- -warn (C# Compiler Options) – Microsoft Docs
- Suppress MSB4126
本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名 呂毅 (包含鏈接: https://blog.walterlv.com ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發布。如有任何疑問,請 與我聯繫 ([email protected]) 。