如何在命令行中抑制来自msbuild的所有编译器和代码分析警告?

时间:2010-11-30 21:21:17

标签: msbuild

This has been asked,但没有回答。答案(使用/warn:1)不适用于msbuild.exe,只适用于csc.exe。也许我错过了csc和msbuild之间的东西?

我想要禁止所有编译器警告和代码分析警告(例如“已分配变量'variableNameHere'但其值......”代码分析警告:CA1805: Microsoft.Performance:... )当我使用命令行msbuild时。我不想改变解决方案文件。在我正在构建的非常大的解决方案中有几百个警告消息 - 修复它们远远超出了我的项目范围。

我尝试了/v:quiet但是没有用。

有没有办法通过命令行执行此操作?

更新:这:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Dev\ReallyBigSolution.sln /p:NoWarn=true /p:NoWarn=CA1031

绝对不起作用。我仍然收到数百个警告,包括我特别阻止的警告(CA1031)。

使用/p:RunCodeAnalysis=Never/p:RunCodeAnalysis=false显然不会禁止代码分析警告或错误。

6 个答案:

答案 0 :(得分:12)

可以在编译器上使用nowarn标志,该标志对应于.csproj文件中的<NoWarn>属性。因此,msbuild /p:NoWarn="37;68"可能会关闭那些警告号码(尚未尝试过)。

或使用

http://msdn.microsoft.com/en-us/library/13b90fz7.aspx

完全关闭警告。我不知道该属性名称,请尝试/p:Warn=0

编辑:到最后阅读评论;似乎真的摆脱所有这些警告是不可能的。

答案 1 :(得分:9)

我知道这是一个老帖子,但它让我走上了正确的轨道,并通过在我的msbuild调用中添加以下内容,它在构建项目时抑制了所有警告和输出。我在批处理文件中有这个,所以我相信的唯一输出是最终结果和我用echo提示的任何消息。秘密在/ clp开关中。所以我查了一下并放入了所有压制输出的东西。每个人都摆脱了更多,但仍有黄色警告出现,当我添加ErrorsOnly开关时,没有更多的输出。

call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo

答案 2 :(得分:3)

试试这个:

msbuild.exe C:\Dev\BigSolution.sln /p:WarningLevel=0 /p:RunCodeAnalysis=false

答案 3 :(得分:1)

我已经尝试了这个并且无法抑制警告,除非我在msbuild.exe的/ NoWarn属性中列出它们

答案 4 :(得分:0)

答案 5 :(得分:0)

看起来像not possible ...

  

引发带有MSB前缀的警告   MSBuild的。目前,我们无法抑制   MSBuild警告。