Как я могу подавить все предупреждения анализа компилятора и кода из msbuild в командной строке?
Это задано, но на него не ответил. Ответ (используйте /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
, по-видимому, не подавляет предупреждения или ошибки анализа кода.
Ответы
Ответ 1
Можно использовать флаг nowarn в компиляторе, который соответствует свойству <NoWarn>
в файле .csproj. Поэтому, возможно, msbuild /p:NoWarn="37;68"
отключит эти номера предупреждений (не пробовал).
Или используйте
http://msdn.microsoft.com/en-us/library/13b90fz7.aspx
чтобы полностью отключить предупреждения. Я не знаю имя свойства offhand, попробуйте /p:Warn=0
.
Изменить: прочитать комментарии к концу; похоже, что действительно избавиться от всех этих предупреждений невозможно.
Ответ 2
Я знаю, что это старый пост, но он меня на правильном пути, и добавив следующее к моему вызову msbuild, он подавил все предупреждения и выходные данные, когда он построил проект. У меня это в пакетном файле, поэтому единственным результатом, который я получаю, я считаю, являются конечные результаты и любые сообщения, которые я запрашиваю с помощью эха. Секрет был в переключателе /clp. Поэтому я посмотрел на это и включил все, что подавляло выход. Каждый из них избавился от большего количества, но все же появлялись желтые предупреждения, и когда я добавил переключатель ErrorsOnly, выхода больше не было.
call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo
Ответ 3
Попробуйте следующее:
msbuild.exe C:\Dev\BigSolution.sln /p:WarningLevel=0 /p:RunCodeAnalysis=false
Ответ 4
Я пробовал это и не могу подавить предупреждения, если я не перечислил их в свойстве /NoWarn для msbuild.exe
Ответ 5
http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/96b3ea2e-92ed-4483-bbfe-a4dda3231eb9
В соответствии с этим он не может быть подавлен.
Ответ 6
Похоже, что невозможен...
Предупреждения с префиксом MSB выбрасываются MSBuild. В настоящее время мы не можем подавлять Предупреждения MSBuild.