Как подавить определенное предупреждение MSBuild
Можно ли отключить определенное предупреждение MSBuild (например, MSB3253) при запуске MSBuild из командной строки? Моя сборка script вызывает msbuild.exe следующим образом:
msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release
Я выяснил, что могу подавить предупреждения С# (например, CS0618), используя другой параметр для msbuild.exe:
msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618
Однако этот подход не работает для предупреждений MSBuild. Может быть, есть другое волшебное свойство?
Я использую .NET 3.5 и VS2008.
Ответы
Ответ 1
Мне удалось подавить уровень предупреждения с помощью /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
Ответ 2
В соответствии с этот поток в форуме MSDN. Предупреждения MSBuild не могут быть подавлены.
Ответ 3
Для 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>
Ответ 4
Для тех, кто сейчас работает (как и я): предстоящий MSBuild 15.0 (будет выпущен с Visual Studio 2017, я полагаю), наконец, реализовать /NoWarn
, чтобы подавить определенные предупреждения (а также /WarnAsError
для обработки определенных предупреждений или всех предупреждений как ошибок).