2016-04-05 3 views
0

мне нужно установить службу программно (Он даже может быть сделана с InstallUtil, но это не может быть сделано вручную)установка службы Windows с .exe путем в C#

У меня есть следующий код, но не может выяснить, как это сделать правильно, так как этот код запрашивает некоторую информацию о классе, которую я не знаю, и мне нужно знать, как ее использовать, чтобы выполнить ее с помощью .exe. код выглядит следующим образом:

public static void InstallService(string ExeFilename) 
{ 
    System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename,null); 
    Installer.UseNewContext = true; 
    Installer.Install(null); 
    Installer.Commit(null); 
} 
+0

Получает ли служба параметры? –

+0

Этот код работает с простым окном, которое у меня есть. В чем проблема? –

+0

System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller (ExeFilename, null); что нуль представляет что? потому что он говорит что-то о командной строке. Мне нужно это, чтобы работать с пути к .exe службы –

ответ

0
public void InstallService(string ExeFilename) 
     { 
      try 
      { 
       System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename, null); 
       Installer.UseNewContext = true; 
       Installer.Install(null); 
       Installer.Commit(null); 
       DialogResult NovoDialog = new DialogResult(); 
       NovoDialog = MessageBox.Show("Deseja Iniciar o Serviço?", "Orca ++ Updater", MessageBoxButtons.YesNo); 
       if (NovoDialog == DialogResult.Yes) 
       { 
        ServiceController service = new ServiceController("OrcaService"); 
        TimeSpan timeout = TimeSpan.FromMilliseconds(1500); 
        service.Start(); 
        service.WaitForStatus(ServiceControllerStatus.Running, timeout); 

       } 
      } 
      catch (Exception ex) 
      { 
       Erro NovoErro = new Erro(); 
       Program.Erro = ex.ToString(); 
       NovoErro.ShowDialog(); 
      } 
     } 

Это, как я solveed это