es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usando System.CommandLine con firma de Main() personalizada.

Estoy intentando usar System.CommandLine y he instalado el paquete nuget:

Install-Package System.CommandLine -Version 2.0.0-beta1.21308.1

Según este artículo de Microsoft, debería poder simplemente escribir un método Main() con mi firma y debería funcionar automáticamente:

static void Main(FileInfo input, FileInfo output)
{
    Console.WriteLine($"¡Hola Mundo! {input} {output}");
}

Sin embargo, mi firma de método Main() es rechazada y obtengo CS5001: El programa no contiene un método 'Main' estático adecuado para un punto de entrada.

¿Estoy haciendo algo mal? Según el artículo, así es como System.CommandLine debería funcionar.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de inteligencia artificial, sugiero que el problema puede que no esté relacionado con el paquete System.CommandLine, sino con la firma de su método Main(). El mensaje de error sugiere que el programa no contiene un método Main() estático o que la firma del método no es adecuada para un punto de entrada.

    Para que sea un punto de entrada, el método Main() debe tener una firma específica. La firma más común es static void Main(string[] args). El parámetro args es una matriz de cadenas que contiene los argumentos de línea de comandos que se pasan al programa.

    En su caso, la firma del método Main() no coincide con la firma del punto de entrada. Toma dos parámetros de FileInfo en lugar de una matriz de cadenas. Debe modificar la firma del método Main() para que coincida con la siguiente firma:

    static void Main(string[] args)
    {
       // Su código aquí
    }
    

    Luego, puede usar el paquete System.CommandLine para analizar los argumentos de línea de comandos y pasarlos a su método.

    ¡Espero que esto ayude!

Comments are closed.