2009-06-11 2 views
4

Я хотел был бы иметь возможность передать параметры в установке обслуживания. Я изменил код C# класса, который наследуется от Installer ... Моя проблема заключается в том, что InstallUtil.exe не работает с параметрами (ну, как я знаю).Как зарегистрировать услугу .Net с помощью командной строки + параметров?

Любое предложение?

ответ

9

У нас такой же сценарий, и он работает. Вы имеете передать параметры следующим

InstallUtil.exe /Param1="Value" /Param2="Value" "Path to your exe" 

Тогда вы, чтобы переопределить метод установки на установщиком

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
    var lParam1 = GetParam("Param1"); 
} 

private string GetParam(string pKey) 
{ 
     try 
     { 
      if (this.Context != null) 
      { 
       if (this.Context.Parameters != null) 
       { 
        string lParamValue = this.Context.Parameters[pKey]; 
        if (lParamValue != null) 
         return lParamValue; 
       } 
      } 
     } 
     catch (Exception) 
     { 
     } 
     return string.Empty; 
    } 
+0

Только для справок в будущем: Если вы передаете имя службы по параметру (создание динамической службы), вам нужно получить параметр в OnBeforeInstall. Спасибо за этот ответ. –

0

Пробег: NSIS. Это язык сценариев, созданный для установки, позволяет вам делать всевозможные сложные вещи. Лично я бы использовал его для любой установки, которая выходит за рамки «Далее, Далее, Далее». Очень гладкий, и не все, что трудно узнать.

0

Сборка и установка с помощью Visual Studio или что-то вроде Wix. В Visual Studio вы можете сделать Custom Action и передать параметры в поле CustomActionData.

2

На самом деле это может быть сделано с Installutil.exe, утилиты .NET инсталлятор, который поставляется с .NET Framework.

Посмотрите на эту статью CodeProject.

+0

Страница очень бедна, но исходный код показывает мне что-то интересное, +1. –

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