コマンドラインから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
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>
MSDNフォーラムの this threadによると、MSBuildの警告は抑制できません。
これをグーグルで操作する人(私のように):今後のMSBuild 15.0(Visual Studio 2017でリリースされる予定です)は最終的に /NoWarn
オプションを実装する 特定の警告を抑制する(同様に)特定の警告またはすべての警告をエラーとして扱う/WarnAsError
として)。