Передача аргументов командной строки в моно-сервис

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

1 ответ

Решение

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


AFAICT нет пути.

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

Обновить

Это кажется странным. assebmblyArgs [так] передаются как часть 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

Другие вопросы по тегам