Добавьте аргументы командной строки в установщик службы c # - PullRequest
5 голосов
/ 10 июля 2009

Я работаю над приложением, которое запускается как служба, но только в том случае, если это указано в командной строке (в противном случае открывается стандартная форма). Поэтому, когда служба запускается Windows при загрузке, она должна передать эту опцию командной строки или служба не запустится.

Я бы хотел, чтобы установщик (ServiceProcessInstaller) добавил параметр командной строки, чтобы при запуске службы он добавлял параметр командной строки в команду.

Пример: MyService.exe -commandlineoption

Я думал, что это было то, для чего было свойство ServiceProcessorInstaller.Context, но это для аргументов, которые были выполнены в InstallUtil.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 10 июля 2009

Когда я добавлял опции командной строки к сервисам, я всегда по умолчанию запускался как сервис. Однако я знаю, что возможно обратное, потому что именно так работает SvcHost: это EXE-файл, который всегда настроен для загрузки DLL как сервисов.

0 голосов
/ 10 июля 2009

Служба устанавливается только один раз для каждого выпуска. Похоже, вы говорите о передаче аргумента командной строки службе, когда она запущена.

Вы можете передавать аргументы командной строки службе, когда запускаете ее с помощью метода ServiceController.Start :

using (var controller = new ServiceController("servicename")) {
    controller.Start(arg0, arg1);
}
...