Предупреждение как ошибка - как избавиться от этих


93

Я не могу понять, как избавиться от ошибок, которые в основном не должны останавливать мою компиляцию в Visual Studio 2010 и не должны показывать стопоры, или, по крайней мере, я исправлю их позже, но я не хочу, чтобы компиляция просто приводила к ошибке и остановитесь на подобных проблемах.

Например, я получаю следующую ошибку:

Ошибка 1 Предупреждение как ошибка: XML-комментарий к 'ScrewTurn.Wiki.SearchEngine.Relevance.Finalize (float)' имеет тег paramref для 'IsFinalized', но нет параметра с таким именем C: \ www \ Wiki \ Screwturn3_0_2_509 \ SearchEngine \ Relevance.cs 60 70 SearchEngine

для этого кода:

  /// <summary>
  /// Normalizes the relevance after finalization.
  /// </summary>
  /// <param name="factor">The normalization factor.</param>
  /// <exception cref="InvalidOperationException">If <paramref name="IsFinalized"/> is <c>false</c> (<see cref="M:Finalize"/> was not called).</exception>
  public void NormalizeAfterFinalization(float factor) {
      if (factor < 0)
          throw new ArgumentOutOfRangeException("factor", "Factor must be greater than or equal to zero");

      if (!isFinalized)
          throw new InvalidOperationException("Normalization can be performed only after finalization");
      value = value * factor;
  }

Я заглянул в меню Инструменты -> Параметры и не вижу, где я могу настроить компилятор и сказать ему, чтобы он не беспокоился о комментариях или ошибках на основе XHTML.


12
Вопрос не в том, «просто исправьте код».
orfdorf 06

Ответы:


156

Каждый проект в Visual Studio имеет параметр «обрабатывать предупреждения как ошибки». Просмотрите каждый из ваших проектов и измените этот параметр:

  1. Щелкните проект правой кнопкой мыши и выберите «Свойства».
  2. Щелкните «Построить».
  3. Переключите «Обрабатывать предупреждения как ошибки» со «Все» на «Конкретные предупреждения» или «Нет».

Расположение этого переключателя зависит от типа проекта (например, библиотеки классов или веб-приложения).


1
Блин, какое место, чтобы это спрятать. Я смотрел везде, но не в рамках проекта.
nportelli

1
Кто-нибудь знает новое решение для VS2012?
bobble14988

1
То же решение в VS2012, @ bobble14988.
Майкл Петротта

6
@ bobble14988 В VS2012 вы можете найти эту конфигурацию в разделе Свойства проекта -> C / C ++ -> Общие
Ханан Н.

1
Интересно, почему VS 2017 не соблюдает изменение с All на None. Я перевернул его, сохранил все, почистил, перестроил, вышел из VS, почистил, перестроил до тошноты, но предупреждения все еще остаются ошибками. csproj falseдля этой настройки. Где, черт возьми, это упорствовал ??? Я отказываюсь от превосходной способности разработчиков MS вносить ошибки.
ajeh 01

13

Чтобы Visual Studio Express 2013 избавился от этой проблемы, вам необходимо сделать следующее.

Щелкните правой кнопкой мыши свой проект и выберите "Свойства". В окне свойств в меню слева выберите Configuration Properties-> C / C ++ -> General.

В правой части выберите

Считать предупреждение ошибкой НЕТ

а также

SDL проверяет НЕТ


1
Отключение SDL Checksсработало для меня в Visual Studio 2015 (у меня было предупреждение об
Кевин Смит

6

Главный ответ устарел для Visual Studio 2015.

Английский:

Configuration Properties -> C/C++ -> General -> Treat Warning As Errors

Немецкий:

Konfigurationseigenschaften -> C/C++ -> Allgemein -> Warnungen als Fehler behandeln

Или используйте это изображение в качестве справки, чтобы легче было быстро мысленно определить местоположение:

введите описание изображения здесь


1

Вы можете управлять поведением в файле заголовка или C-файле:

#pragma warning(error:4003) //not enough actual parameters for macro

пока тестировался с Visual Studio 2015. У меня есть общий заголовочный файл «comp_adaption.h »для таких вещей, включенный во все файлы, чтобы установить это поведение для всех моих проектов, скомпилированных в Visual Studio.


1

Чтобы рассматривать все предупреждения компилятора как ошибки компиляции

  1. Выбрав проект в обозревателе решений, в меню Проект щелкните Свойства.
  2. Щелкните вкладку Compile. (или там может быть вкладка сборки)
  3. Установите флажок Обрабатывать все предупреждения как ошибки. (или выберите настройку сборки и измените настройку «обрабатывать предупреждения как ошибки» на true.)

и если вы хотите избавиться от этого

Чтобы отключить все предупреждения компилятора

  1. Выбрав проект в обозревателе решений, в меню Проект щелкните Свойства.
  2. Щелкните вкладку Compile. (или там может быть вкладка сборки)
  3. Установите флажок Отключить все предупреждения. (или выберите настройку сборки и измените настройку «обрабатывать предупреждения как ошибки» на false.)

0

В Свойствах,

Перейдите в Свойства конфигурации. В этом случае перейдите на C / C ++ (или что-то в этом роде). , Затем нажмите «Общие». Снимите флажок «Обрабатывать предупреждение как ошибки».


0

VS 2019

Я думаю, что для людей, использующих VS2019, другие ответы также указывают на то же место.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.