如何禁止特定的MSBuild警告

有什么办法从命令行运行MSBuild时禁用特定的MSBuild警告(如MSB3253)? 我的构build脚本以如下方式调用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)中进行设置。

  <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <!-- some code goes here --> <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> None </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> <!-- some code goes here --> </PropertyGroup> 

对于那些现在谷歌search(像我一样):即将到来的MSBuild 15.0(将与Visual Studio 2017发布,我假设)将最终实现/NoWarn选项来抑制特定的警告(以及/WarnAsError处理任何特定的警告或所有警告为错误)。