从命令行运行MSBuild时,有没有办法禁用特定的MSBuild警告(例如MSB3253)?我的构建脚本以下列方式调用msbuild.exe:
msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release
我发现我可以使用msbuild.exe的另一个参数来抑制C#警告(例如CS0618):
msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618
但是,此方法不适用于MSBuild警告.也许还有另一个魔法属性可以设定?
我正在使用.NET 3.5和VS2008.
我设法压制了警告级别 /p:WarningLevel=X
msbuild.exe MySolution.sln /t:Rebuild /p:WarningLevel=0 /p:Configuration=Release ^^^^^^^^^^^^^^^^^ Warning Level Meaning -------- ------------------------------------------- 0 Turns off emission of all warning messages. 1 Displays severe warning messages 2 Displays level 1 warnings plus certain, less-severe warnings, such as warnings about hiding class members 3 Displays level 2 warnings plus certain, less-severe warnings, such as warnings about expressions that always evaluate to true or false 4 (the default) Displays all level 3 warnings plus informational warnings
根据MSDN论坛中的这个帖子,MSBuild警告无法被抑制.
对于MSB3253,您只需在项目文件(*.csproj)中设置导致此类警告.
Debug AnyCPU None
对于那些谷歌搜索现在(像我):即将推出的MSBuild 15.0(将与Visual Studio 2017一起发布,我推测)将最终实现/NoWarn
抑制特定警告的选项(以及/WarnAsError
将特定警告或所有警告视为错误) .