Передача аргументов командной строки в моно-сервис - PullRequest
3 голосов
/ 03 октября 2011

Есть ли способ передать аргументы командной строки в службу, вызванную моно-службой?Кажется, что все аргументы командной строки поглощаются моно-службой, а не передаются в службу.

1 Ответ

2 голосов
/ 03 октября 2011

Обновление: согласно моему патчу, выпущенному в конце 2011 года, теперь вы можете использовать предполагаемый интерфейс mono-service.


AFAICT нет пути .

Идиоматический способ сделать это - использовать файл app.config, содержащий Разделы конфигурации (в XML).

Обновление

Это кажется странным. assebmblyArgs [ sic ] передаются как часть от activationAttributes до AppDomain.CreateInstanceAndUnwrap Method (String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]), но игнорируются при вызове OnStart.

Вы можете попробовать скомпилировать модифицированную версию mono-service.exe, используя следующий источник:

* см. github gist или коммит для обзора

Компилировать в mono-service.exe с -r:System.ServiceProcess.dll -r:Mono.Posix.dll -unsafe


СТАРЫЙ СТАРШИЙ:

Обновление 1 Ударь это. Судя по коду , у вас должна быть возможность передавать опции, следующие за именем сборки.

Это означает, что следующее должно делать то, что вы ожидаете:

 mono-service -l:/root/service-lock MyService.exe /Param1 /Param2 bla.txt

...