¿Significados del nivel de advertencia de Visual Studio?

92

En la pestaña de compilación en un proyecto de aplicación web, tengo una configuración llamada "Nivel de advertencia". Puedo establecer un valor de 0 a 4. ¿Qué significan estos valores? ¿Un valor de 0 será más estricto y generará más advertencias, o viceversa? Todavía no he podido encontrar ninguna documentación al respecto, pero quizás estoy buscando en el lugar equivocado.

Jon Tackabury
fuente

Respuestas:

108

Este enlace le muestra las definiciones de los niveles de advertencia (supongo que está utilizando código C # en su proyecto web). El nivel 4 es el más estricto.


  • 0: Desactiva la emisión de todos los mensajes de advertencia.
  • 1: muestra mensajes de advertencia graves.
  • 2: muestra advertencias de nivel 1 más ciertas advertencias menos graves, como advertencias sobre la ocultación de miembros de la clase.
  • 3: muestra advertencias de nivel 2 más ciertas advertencias menos graves, como advertencias sobre expresiones que siempre se evalúan como verdaderas o falsas .
  • 4: Muestra todas las advertencias de nivel 3 más advertencias informativas. Este es el nivel de advertencia predeterminado en la línea de comando.
mwigdahl
fuente
Gracias, eso es exactamente lo que estaba buscando.
Jon Tackabury
7
Puedo sugerirle que copie los niveles en su respuesta en caso de que el enlace se rompa. Algo que ocurre raramente con el sitio web de Microsoft. : D
Samuel
10

Más alto es más estricto. Puede ser molesto ver todas las advertencias que pueden o no significar mucho para su aplicación, pero tomarse el tiempo para aclararlas puede enseñarle mucho.

Royatl
fuente
Secundo esto. Podría ser una buena opción, por ejemplo, para proyectos de prueba unitaria, en los que incluir su conjunto de reglas podría ser excesivo o incluso inadecuado para el tipo de código.
Oliver Schimmer
8

0 desactiva las advertencias por completo, mientras que 4 es el nivel más detallado. Consulte la documentación aquí que tiene los mismos niveles de advertencia.

Adrian Grigore
fuente
0

Además, F # sube al nivel de advertencia 5:

--warn: nivel de advertencia

Establece un nivel de advertencia (0 a 5). El nivel predeterminado es 3. A cada advertencia se le asigna un nivel en función de su gravedad. El nivel 5 da más advertencias, pero menos severas, que el nivel 1.

Las advertencias de nivel 5 son: 21 (uso recursivo verificado en tiempo de ejecución), 22 (deje que rec evalúe fuera de orden), 45 (abstracción completa) y 52 (copia defensiva)

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/compiler-options

chuckc
fuente
-2

Por ejemplo, establecer un nivel de advertencia en 4 o /W4significa que el compilador tratará todas las advertencias como errores. Se trata principalmente de cómo reacciona el compilador cuando ve algo que no le gusta. Y, por cierto, un nivel de 0 vueltas de todas las advertencias.

dirkgently
fuente
8
El nivel 0 desactiva las advertencias, pero el nivel 4 no las trata como errores: "Muestra todas las advertencias del nivel 3 más las advertencias informativas".
zastrowm