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

jco*_*lum 11 msbuild

有人问过,但没有回答.答案(使用/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显然不会抑制代码分析警告或错误.

Bri*_*ian 14

可以在编译器上使用nowarn标志,该标志对应<NoWarn>于.csproj文件中的属性.所以也许msbuild /p:NoWarn="37;68"会关掉那些警告号码(没试过).

或者使用

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

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

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


Sha*_*ler 9

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

call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo
Run Code Online (Sandbox Code Playgroud)