Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

591
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda