Как подавить конкретное предупреждение MSBuild - PullRequest
88 голосов
/ 21 июня 2009

Есть ли способ отключить определенное предупреждение MSBuild (например, MSB3253) при запуске MSBuild из командной строки? Мой скрипт сборки вызывает msbuild.exe следующим образом:

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release

Я обнаружил, что могу подавить предупреждения C # (например, CS0618), используя другой параметр для msbuild.exe:

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618

Однако этот подход не работает для предупреждений MSBuild. Может быть, нужно установить еще одно магическое свойство?

Я использую .NET 3.5 и VS2008.

Ответы [ 4 ]

53 голосов
/ 21 апреля 2011

Мне удалось подавить уровень предупреждения с помощью /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
30 голосов
/ 21 июня 2009

Согласно этот поток в MSDN Forum предупреждений MSBuild не может быть подавлен.

29 голосов
/ 26 июня 2014

Для 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>
10 голосов
/ 29 ноября 2016

Для тех, кто гуглит это сейчас (как и я): грядущий MSBuild 15.0 (который будет выпущен вместе с Visual Studio 2017, я полагаю) наконец-то реализует опцию /NoWarn для подавления определенных предупреждений (также как /WarnAsError для обработки либо отдельных предупреждений, либо всех предупреждений как ошибок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...