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.
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:
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!