2011-12-19 2 views
1

Я использую этот метод: How to make a .NET Windows Service start right after the installation?службы проходят Windows, параметры

Сообщение начинается с «разместил шаг за шагом процедуры». Как передать параметры функции OnStart без использования реестра?

Я могу передать параметры по этому методу Main(string[] args). Я звоню myapp.exe -install. Я хочу позвонить myapp.exe -install path="c:/bla bla".

И также переместите параметр пути в «OnStart». Мой OnStart существует в объекте YourService в примере.

ответ

0

вы должны передать имя приложения myapp.exe/i, после чего в вашей проверке проверки params, чтобы узнать, был ли/i в командной строке args внутри этого кода, вы назначаете путь приложения, который вы могли бы пропустить и в том же окружении по «» сделайте поиск Google при переходе Params в консольном приложении .. тот же теория применима ..

1

от http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onstart.aspx ...

аргументов в арге массива параметров можно задать вручную Окно свойств для сервисов в консоли «Службы». Аргументы , введенные в консоль, не сохраняются; они передаются в услугу на разовой основе, когда услуга запускается с панели управления . Аргументы, которые должны присутствовать при запуске службы , могут быть включены в строковое значение ImagePath для ключа реестра службы (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \). Вы можете получить аргументы из реестра с помощью метода GetCommandLineArgs , например: string [] imagePathArgs = Environment.GetCommandLineArgs() ;.

Используя ваш пример, вы хотите поставить -install path="c:/bla bla" в консоли служб, но это вряд ли удовлетворительным, так как он не будет сохранен, то есть, вы должны делать это каждый раз, когда началась ваша служба. Вы можете пойти в реестр, но вы сказали, что не хотите этого делать. Единственный другой вариант, который приходит на ум, - это какой-то файл конфигурации службы.

Смежные вопросы