Как я могу подавить все предупреждения компилятора и анализа кода из msbuild в командной строке? - PullRequest
11 голосов
/ 01 декабря 2010

Это было задано , но не было ответа.Ответ (используйте /warn:1) не работает для msbuild.exe, только csc.exe.Возможно, я что-то упустил между csc и msbuild?

Я хочу подавить все предупреждения компилятора и предупреждения анализа кода (например, "Переменная 'variableNameHere' назначена, но ее значение ..." или Предупреждение анализа кода:CA1805: Microsoft.Performance: ... ), когда я использую командную строку msbuild.Я не хочу изменять файл решения.В очень большом решении, которое я создаю, есть несколько сотен предупреждений - их исправление выходит за рамки моего проекта.

Я пытался /v:quiet, но это не сработало.

Есть ли способ сделать это через командную строку?

Обновление: это:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Dev\ReallyBigSolution.sln /p:NoWarn=true /p:NoWarn=CA1031

Абсолютно не работает .Я все еще получаю сотни предупреждений, включая одно, которое я специально заблокировал (CA1031).

Использование /p:RunCodeAnalysis=Never или /p:RunCodeAnalysis=false, по-видимому, не подавляет предупреждения или ошибки анализа кода.

Ответы [ 6 ]

12 голосов
/ 01 декабря 2010

Может использовать флаг nowarn на компиляторе, который соответствует свойству <NoWarn> в файле .csproj. Поэтому, возможно, msbuild /p:NoWarn="37;68" отключит эти номера предупреждений (еще не пробовал).

Или используйте

http://msdn.microsoft.com/en-us/library/13b90fz7.aspx

чтобы вообще отключить предупреждения. Я не знаю название свойства, попробуйте /p:Warn=0.

Редактировать: прочитать комментарии ближе к концу; кажется, что на самом деле избавиться от всех этих предупреждений невозможно.

9 голосов
/ 12 ноября 2013

Я знаю, что это старый пост, но он направил меня в нужное русло, и, добавив следующее в мой вызов msbuild, он подавил все предупреждения и вывод при построении проекта. У меня есть это в командном файле, так что единственный вывод, который я получаю, я считаю, это конечные результаты и любые сообщения, которые я получаю с помощью echo. Секрет был в ключе / clp. Так что я посмотрел это и вставил все те, которые подавляют вывод. Каждый из них избавлялся от большего, но все еще появлялись желтые предупреждения, и когда я добавил переключатель ErrorsOnly, больше не было выходных данных.

call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo
3 голосов
/ 07 марта 2013

Попробуйте это:

msbuild.exe C:\Dev\BigSolution.sln /p:WarningLevel=0 /p:RunCodeAnalysis=false
1 голос
/ 23 июня 2011

Я пробовал это и не могу подавить предупреждения, если только я не перечислю их в свойстве / NoWarn для msbuild.exe

0 голосов
/ 01 декабря 2010

Похоже, это невозможно ...

Предупреждения с префиксом MSB выдаются MSBuild. В настоящее время мы не можем подавить Предупреждения MSBuild.

0 голосов
/ 01 декабря 2010

http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/96b3ea2e-92ed-4483-bbfe-a4dda3231eb9

В соответствии с этим оно не может быть подавлено.

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