Advertencia como error: cómo deshacerse de estos

91

No puedo encontrar la manera de deshacerme de los errores que básicamente no deberían detener mi compilación en Visual Studio 2010 y no deberían mostrar stoppers, o al menos los solucionaré más tarde, pero no quiero que la compilación solo produzca un error y detener este tipo de problemas.

Por ejemplo, recibo el siguiente error:

Error 1 Advertencia como error: el comentario XML sobre 'ScrewTurn.Wiki.SearchEngine.Relevance.Finalize (float)' tiene una etiqueta paramref para 'IsFinalized', pero no hay ningún parámetro con ese nombre C: \ www \ Wiki \ Screwturn3_0_2_509 \ SearchEngine \ Relevance.cs 60 70 Motor de búsqueda

para este código:

  /// <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;
  }

Busqué en el menú Herramientas -> Opciones , y no veo dónde puedo modificar el compilador y decirle que no se preocupe por los comentarios o errores basados ​​en XHTML.

PositiveGuy
fuente
11
"Simplemente corrija el código", no es lo que se pregunta.
Orfdorf

Respuestas:

154

Cada proyecto en Visual Studio tiene una opción de "tratar las advertencias como errores". Revise cada uno de sus proyectos y cambie esa configuración:

  1. Haga clic derecho en su proyecto, seleccione "Propiedades".
  2. Haga clic en "Construir".
  3. Cambie "Tratar las advertencias como errores" de "Todas" a "Advertencias específicas" o "Ninguna".

La ubicación de este conmutador varía, según el tipo de proyecto (biblioteca de clases frente a aplicación web, por ejemplo).

Michael Petrotta
fuente
1
Joder, qué lugar para esconder eso. Miré por todas partes pero bajo proyecto.
nportelli
1
¿Alguien conoce la nueva solución para VS2012?
bobble14988
1
Misma solución en VS2012, @ bobble14988.
Michael Petrotta
6
@ bobble14988 En VS2012 puede encontrar esa configuración en Propiedades del proyecto-> C / C ++ -> General
Hanan N.
1
Me pregunto por qué VS 2017 no está respetando el cambio de Todos a Ninguno. Lo volteé, guardé todo, limpié, reconstruí, salí de VS, limpié, reconstruí hasta la saciedad, pero las advertencias siguen siendo errores. El archivo csproj se ajusta falsea esa configuración. ¿Dónde diablos está esto persistido mal ??? Me rindo antes de que los desarrolladores de MS tengan una capacidad superior para introducir errores.
ajeh
13

Para que Visual Studio Express 2013 se deshaga de estos problemas, debe hacer lo siguiente.

Haga clic derecho en su proyecto, haga clic en Propiedades. En la ventana de propiedades desde los menús de la izquierda, seleccione Propiedades de configuración-> C / C ++ -> General

En el lado derecho, seleccione

Trate las advertencias como errores NO

y

Verificaciones SDL NO

Saleh Enam Shohag
fuente
1
La desactivación SDL Checksfuncionó para mí en Visual Studio 2015. (Recibí una advertencia de obsolescencia tratada como un error)
Kevin Smyth
6

La respuesta principal está desactualizada Visual Studio 2015.

Inglés:

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

Alemán:

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

O use esta imagen como referencia, mucho más fácil para descubrir mentalmente rápidamente la ubicación:

ingrese la descripción de la imagen aquí

lama12345
fuente
1

Puede controlar el comportamiento en un archivo de encabezado o archivo C:

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

aún probado con Visual Studio 2015. Tengo un archivo de encabezado común 'compl_adaption.h' para tales cosas, incluido en todos los archivos, para establecer este comportamiento para todos mis proyectos compilados en Visual Studio.

Hartmut Schorrig
fuente
1

Para tratar todas las advertencias del compilador como errores de compilación

  1. Con un proyecto seleccionado en el Explorador de soluciones, en el menú Proyecto, haga clic en Propiedades.
  2. Haga clic en la pestaña Compilar. (o la pestaña de compilación puede estar allí)
  3. Seleccione la casilla de verificación Tratar todas las advertencias como errores. (o seleccione la configuración de compilación y cambie la configuración de "tratar advertencias como errores" a verdadera).

y si quieres deshacerte de él

Para deshabilitar todas las advertencias del compilador

  1. Con un proyecto seleccionado en el Explorador de soluciones, en el menú Proyecto, haga clic en Propiedades.
  2. Haga clic en la pestaña Compilar. (o la pestaña de compilación puede estar allí)
  3. Seleccione la casilla de verificación Deshabilitar todas las advertencias. (o seleccione la configuración de compilación y cambie la configuración de "tratar las advertencias como errores" a falsa).
Alfa Thakkar
fuente
0

En las Propiedades,

Vaya a Propiedades de configuración. En eso, vaya a C / C ++ (o algo así). , A continuación, haga clic en General. En ese caso, elimine la marca de la casilla de verificación "Tratar advertencias como errores".

Paroda
fuente
0

VS 2019

Solo para las personas que usan VS2019, creo que otras respuestas también señalan la misma ubicación.

Yoon5oo
fuente