para linea fortnite consola comandos argumentos adicionales c# .net windows-services topshelf

fortnite - c# argumentos linea comandos



¿Cómo puedo usar Argumentos de la línea de comando que TopShelf no reconoce? (1)

EDITAR: esto solo funciona cuando se ejecuta el .exe, no cuando se ejecuta como un servicio. Como alternativa, puede agregar la opción como valor de configuración y leerla al inicio (lo que probablemente sea una mejor práctica de todos modos):

using System.Configuration; // snip string foobar = null; HostFactory.Run(configurator => { foobar = ConfigurationManager.AppSettings["foobar"]; // do something with fooBar configurator.Service<ServiceClass>(settings => { settings.ConstructUsing(s => GetInstance<ServiceClass>()); settings.WhenStarted(s => s.Start()); settings.WhenStopped(s => s.Stop()); }); configurator.RunAsLocalService(); configurator.SetServiceName("ServiceName"); configurator.SetDisplayName("DisplayName"); configurator.SetDescription("Description"); configurator.StartAutomatically(); });

De acuerdo con la documentación, debe especificar los comandos en este patrón:

-foobar:Test

También necesita agregar la definición en la configuración de su servicio:

string fooBar = null; HostFactory.Run(configurator => { configurator.AddCommandLineDefinition("fooBar", f=> { fooBar = f; }); configurator.ApplyCommandLine(); // do something with fooBar configurator.Service<ServiceClass>(settings => { settings.ConstructUsing(s => GetInstance<ServiceClass>()); settings.WhenStarted(s => s.Start()); settings.WhenStopped(s => s.Stop()); }); configurator.RunAsLocalService(); configurator.SetServiceName("ServiceName"); configurator.SetDisplayName("DisplayName"); configurator.SetDescription("Description"); configurator.StartAutomatically(); });

Quiero pasar algunos argumentos personalizados a la aplicación de la consola cuando instalo e inicio como un Servicio de Windows a través de TopShelf.

Cuando uso:

MyService install start /fooBar: Test

La aplicación de la consola falla:

[Error] Línea de comando Se encontró una opción de línea de comando desconocida: DEFINE: fooBar = Test

Pregunta:

¿Cómo puedo hacer que TopShelf pueda reconocer mis argumentos para poder consumir sus valores?