Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

576
Vistas
Cómo obtener advertencias del comando dotnet build

Dado un proyecto .Net C#, quiero verificar si la compilación contiene advertencias. Al ejecutar el comando

 dotnet build -consoleloggerparameters:"Summary;Verbosity=normal" -m -p:"WarnLevel=5;EnforceCodeStyleInBuild=true" -t:"clean,build"

obtengo el resultado esperado

 Build succeeded. 2 Warning(s) 0 Error(s)

Pero el código de salida es 0, entonces, ¿cómo sé si esa compilación contiene advertencias?

Creé un script de shell para jugar

 #!/bin/bash dotnet build -consoleloggerparameters:"Summary;Verbosity=normal" -m -p:"WarnLevel=5;EnforceCodeStyleInBuild=true" -t:"clean,build" if [ $? -eq 0 ] then echo ">>> Success" else echo ">>> Contains warnings or errors" fi read

pero, ¿cómo puedo extender el script para verificar una compilación exitosa con advertencias? Las canalizaciones de CI configuradas deberían pasar, pero quiero marcarlas como inestables si ocurrieron advertencias.

Me gustaría evitar la magia Regex si es posible.


Editar:

No quiero agregar el indicador -warnaserror porque entonces las canalizaciones de CI fallarán y no podrá saber si se produjeron errores de compilación o si el estilo del código es simplemente incorrecto.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Lo que puede hacer es simplemente agregar /WarnAsError a su compilación dotnet.

Código de ejemplo:

 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); int x = 0; } } }

Salida de la compilación dotnet:

 dotnet build Microsoft (R) Build Engine version 16.10.0+4242f381a for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... All projects are up-to-date for restore. Program.cs(10,17): warning CS0219: The variable 'x' is assigned but its value is never used [ConsoleApp1.csproj] ConsoleApp1 -> ConsoleApp1.dll Build succeeded. \Program.cs(10,17): warning CS0219: The variable 'x' is assigned but its value is never used [ConsoleApp1.csproj] 1 Warning(s) 0 Error(s) Time Elapsed 00:00:00.79

Salida de dotnet build /WarnAsError:

 dotnet build /WarnAsError Microsoft (R) Build Engine version 16.10.0+4242f381a for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... Restored ConsoleApp1.csproj (in 60 ms). Program.cs(10,17): error CS0219: The variable 'x' is assigned but its value is never used [ConsoleApp1.csproj] ConsoleApp1 -> ConsoleApp1.dll Build FAILED. Program.cs(10,17): error CS0219: The variable 'x' is assigned but its value is never used [ConsoleApp1.csproj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:01.00

EDITAR: OP solicitó no fallar en la compilación tras la advertencia.

Algo que puede intentar es hacer que las advertencias se escriban en un archivo y luego contar el número de líneas en ese archivo.

Ejemplo:

Tomé el código anterior y agregué varias variables:

 int a = 0; int b = 0; int c = 0; int d = 0; int e = 0;

Ahora, cuando compilo, recibo 5 advertencias. Ahora agregué esto a mi compilación dotnet:

 $warningsFile = "SomeFile.log" dotnet build -fl1 "/flp1:logFile=$warningsFile;warningsonly"

Luego, simplemente puedo contar el número de líneas en ese archivo. Usando powershell:

 gc $warningsFile | Measure-Object -Line

Resultados en:

 Lines Words Characters Property ----- ----- ---------- -------- 5

No estoy seguro de si esto funcionará en todos los casos, pero al menos le dirá si recibió advertencias o no. Espero que esto te ayude

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda