如何禁止特定的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
处理任何特定的警告或所有警告为错误)。